renaudcerrato / appengine-maven-repository Goto Github PK
View Code? Open in Web Editor NEWFree Private Maven repositories hosted on Google App-Engine, backed by Google Cloud Storage and deployed in less than 5 minutes.
Free Private Maven repositories hosted on Google App-Engine, backed by Google Cloud Storage and deployed in less than 5 minutes.
@renaudcerrato I also had to follow the manual steps from #6 for creating the app engine. It looks like app engine has changed how the default url works too.
I'm getting 404s at https://projectname.appspot.com
But found https://v1-dot-projectname.appspot.com
in the console, which works when defining them in the maven repository url's. (Find at https://console.cloud.google.com/appengine/versions?project=<my-project-name>&serviceId=default
)
It might be worth mentioning in the readme to verify the opening the url in a browser, results in a login popup? 👍
Is there a way to remove data from the repository?
First of all, nice project. It's a great idea for a frictionless way to get a Maven repo up and running. Especially when the best practise approach of using Nexus/Artifactory is cost prohibitive and cumbersome for personal projects.
Following the README page instructions, once the app is deployed, the login is fine via HTTP basic.
Without anything yet deployed to the Maven repo, the first landing page you see after login just says 'Error: Not Found'
I would suggest either
Hello, first of all, thanks for the project.
I've got dependency retrieving exception while launching ./gradlew appengineDeploy to deploy.:
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find androidx.annotation:annotation:1.1.0.
Searched in the following locations:
- https://jcenter.bintray.com/androidx/annotation/annotation/1.1.0/annotation-1.1.0.pom
- https://jcenter.bintray.com/androidx/annotation/annotation/1.1.0/annotation-1.1.0.jar
Required by:
project : > com.google.appengine.tools:appengine-gcs-client:0.6 > com.google.apis:google-api-services-storage:v1-rev68-1.21.0 > com.google.api-client:google-api-client:1.30.8
Problem solved by moving to:
'com.google.appengine.tools:appengine-gcs-client:0.8'
Hello, could you describe how can i modify POM file, for example to add external gradle?
Configure project :
WARNING: You are a using release candidate 2.0.0-rc5. Behavior of this plugin has changed since 1.3.5. Please see release notes at: https://github.com/GoogleCloudPlatform/app-gradle-plugin.
Missing a feature? Can't get it to work?, please file a bug at: https://github.com/GoogleCloudPlatform/app-gradle-plugin/issues.
ERROR: (gcloud.app.deploy) The current Google Cloud project [h1r4-maven-repo] does not contain an App Engine application. Use gcloud app create
to initialize an App Engine application within the project.
Task :appengineDeploy FAILED
FAILURE: Build failed with an exception.
com.google.cloud.tools.appengine.AppEngineException: com.google.cloud.tools.appengine.operations.cloudsdk.process.ProcessHandlerException: com.google.cloud.tools.appengine.AppEngineException: Non zero exit: 1
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.9/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 13s
6 actionable tasks: 2 executed, 4 up-to-date
It would be nice if the app would keep only a certain specified number of latest snapshots and delete the rest. I am looking at adding it. I will send a PR when done.
Hi guys,
Thanks for your great library.
I am done deploy my repo as tutorial in ReadMe.
But I don't what's next as well as how to put my module gradle into appegine.
Could you please show a full example which has gradle module code in your project (where to put it and how to config)?
And show how to include this module into main project with private repo
I think it would be make sense for newbie like me, because I just a android developer, and I don't have any experience with Google Cloud
Thank you!
it would be nice to have an option to refuse artifacts that has the same version of an artifact already uploaded
Example:
just wanted to report my findings as I tried to follow the main instructions
./gradlew appengineUpdate
I got the following error:WARNING: Error posting to URL: https://appengine.google.com/api/appversion/getresourcelimits?app_id=bleachr-maven-repo&version=v1&
404 Not Found
This application does not exist (project_id=u'bleachr-maven-repo'). To create an App Engine application in this project, run "gcloud app create" in your console.
This is try #0
Could this have changed on google's side?
As soon as your project is created, a default Google Cloud storage bucket has been automatically created for you
I ended up signing up for a 'free trial' (not sure if I'm going to get billed after or not), enabling the google console shell and finally running the command gcloud app create
After this the ./gradlew appengineUpdate
command worked!
I really like the simplicity of this project, only one thing; I really wish I could lock a user to a certain packagename when the listing appears, to make a simple grouping setup for different users
I deployed this awesome repo to a new App Engine app yesterday and it worked for the first time. Then, this morning, the app stopped working, and I saw this in the logs:
2019-11-13 17:34:02.397 CST
The request failed because the instance could not start successfully
2019-11-13 17:34:02.397 CST
Process terminated because it failed to respond to the start request with an HTTP status code of 200-299 or 404.
I don't understand why it worked on deploy then stopped. It could have something to do with the instance scaling setup I added to appengine-web.xml
.
<basic-scaling>
<max-instances>1</max-instances>
<idle-timeout>3m</idle-timeout>
</basic-scaling>
It scales the app down to 0 instances when not in use.
I added an _ah/start
controller and will make a PR...I just don't get why 1) the app worked and 2) no one has dealt with this before? Especially because it was reproducible locally just using ./gradlew appengineRun
.
JDK8 on Appengine will be demised by end of Jan 2024. This project should be migrated to JDK11 in order to support further deployments.
Hi @renaudcerrato ,
Sorry to bother you, but I can't find the way to remove authorization key that generated after run
/gradlew appengineUpdate
I want to change the different google account to authorize (also change new app engine app), but it always use the old key for request
I tried to revoke permission from my google account, now I get 401 error when run
/gradlew appengineUpdate
again
Do you know where the location of the authorization key? Or do you have any idea?
Thank!
The https://github.com/renaudcerrato/appengine-maven-repository/blob/master/src/main/java/repo/resource/RepositoryResource.java#L104 does not work properly for the *.xml files as the GCP does not set the content type for the XML and the *.xml files are returned as 'application/octet-stream'
This causes issue with some tools that rely on the content type
First, thanks for sharing this nice project – really appreciated.
Is there currently a way to allow anonymous read access to the repository?
Thanks!
I couldn't get this project to work properly with sbt.
I'm fairly certain that it has something to do with the Basic Auth, because you are forced to define a realm for the credentials in sbt, but this project doesn't return any.
curl https://maven.company.com -vv
returns WWW-Authenticate: Basic
instead of WWW-Authenticate: Basic realm="some-realm-name"
I have already commented an open issue on sbt describing the problem (link)
However, i do believe that it would be fairly simple to just return a realm in this application.
Unfortunately, i wasn't able to do it myself, because i lack knowledge about JAX-RS.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.