New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making restSQL accessible in maven repositories #13

Open
aronhamvas opened this Issue Aug 23, 2012 · 10 comments

Comments

Projects
None yet
7 participants
@aronhamvas
Copy link

aronhamvas commented Aug 23, 2012

This is just an idea that restSQL might benefit from. How about making it a maven project? It should mean no backward compatibility issue. It would only mean a few changes to the project structure (resource directories), but dependencies could be handled in a more flexible way, and the jar distribution could be added to projects using as a maven dependency; so upgrading to a new version could be done more easily. (No downloading and replacing jars, just updating the pom.xml.)
Also, more frequent releases would be possible, which is useful if many bugfixes/feature requests arrive. What do you think about it?

@aronhamvas

This comment has been minimized.

Copy link
Author

aronhamvas commented Aug 23, 2012

Also, maven supports built-in unit test execution when building project, and different types of releases (like jar, war, jar with services, jar with dependencies, etc.).

@restsql

This comment has been minimized.

Copy link
Owner

restsql commented Aug 23, 2012

Users don't want to build the project, they just want a distribution; therefore maven would only provide benefit to framework developers. It would require us to change all the build files to conform to maven and possibly reorganize the lib and source structure. Since we have very few framework developers, I don't recommend this.

Personally, I don't know much about maven and have much more familiarity with ant and groovy for build management. So tell me what I'm missing.

Mark

@aronhamvas

This comment has been minimized.

Copy link
Author

aronhamvas commented Aug 23, 2012

"Since we have very few framework developers..."
You could be a little more optimistic. :) This looks like an awesome tool.

Actually, the good thing about maven is that it supports standard/conventional project structures, and as long as you stick to the conventions, there is virtually nothing to configure.

I don't want to go into details, there are really good descriptions and presentations online, but the benefits to restSQL particularly (this is my opinion -- developers should decide whether they are real benefits):

  • No need for the 'lib' directory in the project. Dependencies are specified in the project object model, and are resolved recursively by maven. (All your dependencies are already in a maven repository, and they are actually most probably maven projects.)
  • No need for build configuration. Maven knows how to build web applications. Really. :) If you want anything extra, it is very straightforward.
  • Automatic unit test execution at build time. I don't know if you have or want tests.
  • Release management.
  • restSQL becomes accessible as a dependency to everyone who use maven. :)
  • It is really easy to make a maven project from an existing project.

I think, these are the ones that come to my mind. If you are interested, I can show you next week what your project would look like as a maven project.

It is definitely not a request, just a recommendation in case you are interested in trendy new tools that actually do good. I know there are few developers right now and I don't know if you would like this project to grow bigger, but if you do, then I don't think you lose anything but 1-2 hours by checking out if it helps you. That's all.

Áron

@marcosjitisoft

This comment has been minimized.

Copy link

marcosjitisoft commented Sep 11, 2012

Hi,

If I can just add my 2 cents. It would be extremely beneficial to just have the final built jar in maven central or even your current download folder. It would not require changing what you use to build. I would just add a command at the end, when you publish a build, to simply wrap the jar in a pom and push it.

No major change would be required.<<

We use maven to build, but I would not impose that on anybody. However, pushing your versioned library as a pom to a maven repo in your downloads folder or to maven central will definitely be a great benefit.

For example, this is what I use to manually wrap the jar:

curl -O http://restsql.org/dist/restsql-0.8.jar
mvn install:install-file
-DgroupId=org.restSql
-DartifactId=restSql-core
-Dversion=0.8
-Dpackaging=jar
-Dfile=./restsql-0.8.jar
-DgeneratePom=true
-DuniqueVersion=true
-Dmaven.repo.local=

You of course have better control of the versions, so those parameters would change.

Best Regards,
Marcos

@marcosjitisoft

This comment has been minimized.

Copy link

marcosjitisoft commented Sep 11, 2012

For some reason the last variable got cut out. The maven.repo.local is simply your private maven repo, for example your dist/maven folder. That way you can keep your distribution the same, but allow people to specify something like http://restsql.org/dist/maven as a repository to download your goodies. :D

@marcosjitisoft

This comment has been minimized.

Copy link

marcosjitisoft commented Sep 11, 2012

One more thing. Revising the command. The command I was using is to install on my repo. To deploy to a remote repo or folder use the following command.:

mvn -s ./settings.xml deploy:deploy-file -DgroupId=org.restSql -DartifactId=restSql-core -Dversion=0.8 -Dpackaging=jar -Dfile=./restsql-0.8.jar -Durl=file:///Volumes/release or some https://....dist/maven folder

The settings file is used to keep the authentication credentials, if needed. Sorry for the confusion and let me know if I can be of any help!

Regards,
Marcos

@mooreds

This comment has been minimized.

Copy link
Contributor

mooreds commented Sep 13, 2012

I'd just chime in that having this great lib accessible via a maven repo would be awesome!

As Marcos says, no need to restructure the build system, just push a final jar to a location and document it. Then, anyone using maven can pull it whatever version they need.

@amaury-d

This comment has been minimized.

Copy link

amaury-d commented Dec 12, 2013

+1
This indeed would be awesome

@steve-taylor

This comment has been minimized.

Copy link

steve-taylor commented Mar 22, 2014

+1
I don't use libraries unless they're available in a public Maven repo. It's too much hassle to manually maintain dependencies.

@r4dekm

This comment has been minimized.

Copy link

r4dekm commented Apr 11, 2016

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment