hi Brett,
I believe this issue is more important than just a path configuration.
the reason I want to change this location is very relevant to
package and assemble goal
1) $mvn package
firstly I copied all my dependencies to target/lib/ during my
package goal
<!-- PLUGIN: dependency -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>dependency-maven-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
2) $mvn assembly:assembly
* when I do assembly , i jar up all my classes as my-app-1.0-
SNAPSHOT.jar with a manifest for mainClass.
* I added Classpath=true, otherwise, main class resided in my-
app-1.0-SNAPSHOT.jar will NOT able to find its depended lib, EVEN if
u have specified in classpath at "Java -cp"
<!-- PLUGIN: jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.mycompany.SimpleApp</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
3) * tar up my generated jar together with all dependencies at /
target/lib, as my-app-1.0-SNAPSHOT-bin.tar.gz
<!-- PLUGIN: assembly -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptor>src/main/assembly/bin.xml</descriptor>
</configuration>
</plugin>
when u untar my-app-1.0-SNAPSHOT-bin.tar.gz. u should get this
structure:
/my-app-1.0-SNAPSHOT.jar
/lib/log4j.jar
/lib/...external.jar
if u have done this way, u will find out the PROLEM when u execute
the followings:
$java -jar my-app-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
Bcos , dependency is at lib .. Not the same directory as my-app-1.0-
SNAPSHOT.jar
After all the long story: therefore I must generate my-app-1.0-
SNAPSHOT.jar to target/lib in the first place
(in fact, I strongly believe that Maven should do this in a more
standard & transparent manner!! bcos very often, we need to package
depended jar with our developed componment, and very likely, to copy
to target/lib
but now we need to add , again, so many plugins and configure out the
setting! it really spent me a couple of days to iron this out! We
should avoid doing such complexity in maven !! )
~manchi
On Jan 6, 2006, at 9:49 AM, Brett Porter wrote:
It's intentional. It's meant to be the location of the project.
What should go in JIRA is the ability to change the output location.
- Brett
On 1/6/06, Henry Isidro <[EMAIL PROTECTED]> wrote:
Henry Isidro wrote:
Man-Chi Leung wrote:
how can I change the generated jar location from default
<project_dir>/target/ to <project_dir>/target/lib?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<basedir>/target/lib</basedir> <-------- I
want to
do something like this. but ERROR!
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.ever.beetles.SimpleJxtaApp</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
[INFO]
-------------------------------------------------------------------
-----
----
[ERROR] BUILD ERROR
[INFO]
-------------------------------------------------------------------
-----
----
[INFO] Error configuring: org.apache.maven.plugins:maven-jar-
plugin.
Reason: ERROR: Cannot override read-only parameter: basedir in
goal:
jar:jar
[INFO]
-------------------------------------------------------------------
-----
----
-------------------------------------------------------------------
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I looked at the jar plugin source and as expected, basedir is
readonly. I don't think you can change it via this way unless you
edit
the jar plugin source.
Regards,
Henry
--------------------------------------------------------------------
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I tried removing the readonly setting from the basedir property
from the
jar plugin source and I was able to change the basedir property using
your configuration. I don't know why the basedir property is
readonly.
Maybe you should file a JIRA issue regarding this.
Regards,
henry
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]