Closed GoogleCodeExporter closed 9 years ago
I see your advantages as disadvantages:
#1. Putting everything in a pom.xml file is pointless. I don't need dependency
management.
#2. jar files in svn is absolutely the right thing to do. I want to know that
10 years
from now, I can check out this project, at any point, and build it cleanly.
Maven
repositories do not guarantee that.
#3. Ant automated the compiling, unit testing and packaging steps just fine. It
is
clearly defined and easy to read. It takes someone 30 seconds to come up to
speed
with ant. If I want the build to do something special (like define the manifest
in the
jar file), I don't have to dig around for some un/poorly documented attributes
to put
into the pom.xml file. Ant also executes quickly, doesn't require me to have a
network connection, store a massive amount of jar files that I don't need, etc.
#4. Anyone can download the files from this website. Forcing any project to add
a
pom.xml file just so that it will work with Maven is a stupid broken model for
development.
Sorry, but it isn't going to happen in my lifetime.
Original comment by latch...@gmail.com
on 5 Jan 2010 at 6:11
Hello
Could I propose an intermediate solution, where we would put a pom.xml for
deploying
the generated JAR file into a repository? The main build would still be done by
ANT,
Maven would only deploy the file in a repository.
This is required for integrating with other projects that use Maven for
development,
the first example I think of being Apache Camel.
Thank you
Original comment by goo...@alishomepage.com
on 5 Jan 2010 at 6:32
Sorry, file a bug with Maven saying that they can't work with projects that
don't have a
pom.xml file. =)
Original comment by latch...@gmail.com
on 5 Jan 2010 at 7:15
Original comment by latch...@gmail.com
on 6 Jan 2010 at 12:15
You can keep building with ANT, and yes Maven is far form perfect. However, in
Maven
by linking to an existing pom at least my dependency management gets easier,
that it
is really a pain in the ass in Java. For sardine, these dependencies are
required:
<dependency>
<groupId>com.googlecode</groupId>
<artifactId>sardine</artifactId>
<version>73</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.1.12</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0.1</version>
</dependency>
And it would be just a little bit nicer if there would be some Maven repository
somewhere where sardine has a pom.xml with the last three dependencies listed.
Btw, sardine looks very clean and nice. Thanks!
Original comment by max.at.x...@gmail.com
on 16 Feb 2010 at 4:00
jaxb is not required if you have java6. too bad maven can't model that.
Original comment by latch...@gmail.com
on 16 Feb 2010 at 4:45
:-) I agree on both. I am using Java 5.
There are sooo many things maven cannot model, but even modelling a few helps
me to
manage my projects. I helps especially to get used to new open-source projects
created by other people.
Original comment by max.at.x...@gmail.com
on 16 Feb 2010 at 5:24
[deleted comment]
Just to be clear, my requirements for Maven artifact generation are:
* This project will continue to build and run tests with ant. It should not be a
requirement to have maven installed.
* The standard distribution will be built with ant.
* You can modify the ant buildfile, but don't make structural changes to the project
(ie move code around in directories). If
it requires any changes to the project at all, we need to talk about it.
* You will take "ownership" of the maven releases. I do not want to maintain this
stuff.
* I do not want the artifacts distributed to the central maven repositories. I will only
accept duplicating the Maven repo
structure in svn here on google code.
http://www.thewebsemantic.com/2009/04/11/your-very-own-google-code-
maven-repo/
If this sounds reasonable to you, I'll make you a committer.
Original comment by latch...@gmail.com
on 18 Feb 2010 at 10:52
Original comment by latch...@gmail.com
on 24 Feb 2010 at 6:22
Issue 22 has been merged into this issue.
Original comment by latch...@gmail.com
on 24 Feb 2010 at 6:23
Do I understand it well that ant-googlecode, svnkit and svntask are needed
solely for
build process?
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 2:29
Could you please give me a commiter? I could create the maven repo right here on
google code, as I do it in JTexy project.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 2:31
Correct, they are only needed for build. I just made you a committer. =)
Original comment by latch...@gmail.com
on 25 Feb 2010 at 4:29
I am going to create a `maven` dir in SVN root, and put the artifacts there.
One question: What would you like the groupId to be?
1) com.googlecode.sardine
2) your.domain.sardine (eg. com.latchkey.sardine if you have some such domain)
3) don't care
I usually prefer 2), because it's more unique, and project hosting can change :)
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 8:19
Done: http://sardine.googlecode.com/svn/maven/
Hopefully I've done it properly. Not tested yet, have to go to work :)
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 9:00
Someone mark it as Status: Done when verified it works.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 9:03
Pls put this to the wiki or home page:
== Sardine Maven repository ==
To add Sardine as a maven dependency, add the repo to your pom.
{{{
<project>
...
<repositories>
<repository>
<id>sardine-google-svn-repo</id>
<snapshots> <enabled>true</enabled> </snapshots>
<name>Sardine maven repo at Google Code</name>
<url>http://sardine.googlecode.com/svn/maven/</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>com.googlecode.sardine</groupId>
<artifactId>sardine</artifactId>
<version>80</version>
</dependency>
</dependencies>
</project>
}}}
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 10:02
By the way, I understand your attitude regarding Maven. But it makes a lot of
things
easier. Not for the developer, but for the users. And, from my experience, once
you
get used to it, you'll see that in many aspects it's actually easier to use
than Ant.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 10:52
[deleted comment]
Can you please move it up one directory? There are two sardine's...
http://sardine.googlecode.com/svn/maven/com/googlecode/sardine/sardine/
You can edit the wiki pages and set that stuff up nicely... you should have
access to
that.
I have a TON of experience with maven. That is why I refuse to use it. =)
Thanks for doing the work.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 4:15
The two sardines are intentional - the path consists of
groupId.replaceChar(".","/")
+ artifactId, which gives this path. See e.g. Dom4j:
http://repository.jboss.org/maven2/dom4j/dom4j/
This will come handy when Sardine will be split to modules, then it will be
`sardine/sardine-core` etc.
Ok then, Ant is good as well. I will check the project ocassionally and create
the
artifact; only, please, let me know (comment this issue) when the deps change
(incl.
versions), thanks. And thanks for the library, too, I like the simplicity it
gives to
WebDAV :)
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 4:37
Sardine will never be split into modules. In fact, that is one of the annoying
things
about maven that I don't like.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 4:47
Added `Maven` wiki page & marked as Featured to let people see it on the home
page.
By modules, I mean .jar's. What if Sardine gains a big momentum and plug-ins
will
begin to pop up ;-) But let's solve it when it comes. Currently this perfectly
fits.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 4:53
If you can fix the directory structure, I'd like that. If Sardine ever has
plugin's we can
change it at that point.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 4:56
Sardine has a dependency on HttpClient 4.0.1 and JAXB (for JDK 5). Why is this
not
reflected in the Maven dependencies in the wiki page?
Original comment by latch...@gmail.com
on 25 Feb 2010 at 4:59
Ad 25) - modularity is not the reason. The only way to have it with single
/sardine/
is to use the group `com.googlecode`, which is likely to collide with other
projects,
and possibly would be disregarded by their autors. It's similar like if you
wanted to
use `com.googlecode` as a package for your classes.
Ad 26) HttpClient dep is described in the `sardine` artifact's pom - see
http://sardine.googlecode.com/svn/maven/com/googlecode/sardine/sardine/80/sardin
e-80.pom
.
I have created kind of "default" artifact for JDK 6, which is what I use; thus,
no
JAXB deps. I will create a JDK 5 version in few days (using Maven classifiers),
which
will include JAXB deps; but first I have to think up the efficient way - it
should be
possible to have only one `.jar` but more `pom.xml` to describe this
difference, but
I haven't done this yet so I have to look around how to :)
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 5:39
And, BTW, that immediately gives the reason to have sardine/sardine - because,
it
will most probably become sardine/sardine-jar, sardine/sardine-jdk5, and
sardine/sardine-jdk6.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 5:53
No it won't. Sardine itself doesn't have JDK6/JDK5 dependencies. It only has a
dependency on JAXB which is missing from JDK5, but included in JDK6.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 5:56
It's possible to do it the same way in Maven by declaring JAXB as `provided`,
but
then user on JDK 5 must add the JAXB deps in his project. With those
classifiers, one
would only need to choose the right name. One-byte difference.
But anyway, I think I found a better way, with just one artifact.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 6:48
There is a better way, it is called Maven profiles. See the documentation
http://maven.apache.org/guides/introduction/introduction-to-profiles.html
Example:
<profiles>
<profile>
<activation>
<jdk>[1.3,1.6)</jdk>
</activation>
...
</profile>
</profiles>
and replace the ... with your dependencies
Original comment by goo...@alishomepage.com
on 25 Feb 2010 at 6:54
Another one of my complaints. The documentation for Maven sucks. [1.3,1.6) ???
These guys don't even look at
their own docs.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 6:58
Oh nevermind, I see that someone came up with some retarded version range
specification syntax.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 6:59
#31 Aah, profiles. Why didn't that cross my mind? Thanks :)
#32 Yeah, the doc sucks. The more it sucks when you start to cope with non-core
plugins. Whole Maven sucks :) I think I have as much complaints about Maven as
you have.
But still I can hardly imagine managing my projects without it. You see, I have
like
100+ deps, changing every day. Then I need to put their javadocs and sources to
the
IDE... Maven (or, better said, it's conventions) does it for me. Most of libs
are in
Maven repo now. Ivy didn't catch the train.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 7:13
100+ deps changing every day? It sounds like something is wrong with the design
of your system. I can't imagine
how QA would deal with that many changes.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 7:24
And that's not all - some of them are snapshots, which adds some salt in the
wound.
BTW. Why do you stick with JDK 1.5? It's EOLed already... 1.7 on the way.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 7:48
Oh, I'm not on 1.5, but others are. I even said this in the UsageGuide : Java 5
does not include JAXB, but you are
using Java 6 now, right? =)
1.7... yea, we'll see about that one... i'm not sure how it will ever get
released.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 7:53
The solution with <profile> seems not to work for poms in repository - profiles
are
probably only considered for the artifacts being built.
Original comment by dynaw...@gmail.com
on 25 Feb 2010 at 8:30
Ah maven, you pile of shit.
Original comment by latch...@gmail.com
on 25 Feb 2010 at 8:43
I'm going to consider this resolved.
Original comment by latch...@gmail.com
on 26 Feb 2010 at 5:21
I'm using Java 5, for me the pom at
http://sardine.googlecode.com/svn/maven/com/googlecode/sardine/sardine/80/sardin
e-80.pom
does not work because the dependency
\com\sun\xml\bind\jaxb-impl\2.1.12\jaxb-impl-2.1.12-jdk5.jar cannot be found in
any
of the standard repos. Without the classifier everything should work. Even if
you
just leave out the two JDK5-only dependencies completely, I'd be happy. I can
simply
add them myself to my local pom.
Original comment by max.at.x...@gmail.com
on 9 Mar 2010 at 2:53
Original issue reported on code.google.com by
goo...@alishomepage.com
on 5 Jan 2010 at 8:30