Tag: maven assembly plugin

Maven – 取决于组装的邮编

我正在尝试让Project B下拉(并解压缩)由Project A构build的ZIP并将其部署到远程存储库。 ZIP是使用maven-assembly-plugin创build和连接的,包装types是pom : <artifactId>project-a</artifactId> <name>ZIP</name> <description>Used by Project B</description> <packaging>pom</packaging> … <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>distribution-package</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptors> <descriptor>src/main/assembly/scripts.xml</descriptor> </descriptors> <tarLongFileMode>gnu</tarLongFileMode> </configuration> </execution> </executions> </plugin> 试图从Project B的pom中使用maven-dependency-plugin : <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-scripts</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <outputDirectory>${basedir}/target/staging</outputDirectory> <stripVersion>true</stripVersion> <artifactItems> <artifactItem> <groupId>…</groupId> <artifactId>…</artifactId> <version>…</version> <overWrite>true</overWrite> <type>zip</type> […]

使用maven将版本号输出到文本文件

我想生成一个zip文件,用maven更新一个应用程序。 该zip将托pipe在服务器上,我使用程序集插件来生成zip。 不过,我想Maven自动生成一个文本文件,将当前版本号存储在zip之外。 这可能吗? 编辑:我成功地使用maven Assembly Plugin和两个描述符来创build两个自定义程序集。 其中一个目录是单个目标,它只是基于过滤创build一个包含更新的version.txt的文件夹。 然后另一个有一个单一的目标实际上打包压缩文件。 这似乎是非常不雅,我想它不会正确地更新与整个更新的文件夹的Maven回购。 如果有更好的方法做到这一点,请让我知道。

Maven:在项目JAR旁边封装依赖项?

我希望Maven在运行时依赖包的同时打包一个项目。 我期望它创build一个JAR文件,具有以下清单: ….. Main-Class : com.acme.MainClass Class-Path : lib/dependency1.jar lib/dependency2.jar ….. 并创build以下目录结构: target |– …. |– my-project.jar |– lib |– dependency1.jar |– dependency2.jar 意思是,我想要主JAR排除任何依赖关系,我希望所有的传递依赖被复制到一个“lib”子目录。 有任何想法吗?

是否有可能重新命名一个maven jar -with-dependencies?

我目前正在使用jar-with-dependencies程序集来创build这样一个jar。 不过,我的jar的名字有点长。 由于这个jar被AS400上的RPG程序所使用,我想缩短它,使开发人员的生活变得容易一些。 但是,除了手工,我还没有find一种方法来重新命名从通常的project-name-version-classifier-jar-with-dependencies.jar 。 我想要像project-name-version-classifier-full.jar这样的东西 有没有办法做到这一点,没有基本上复制jar-with-dependencies程序集描述符,并调用它完整? 另外,我想继续保存没有组装在存储库中的类path的jar。 我需要两件神器。 与我的分类器持有build设的地区的jar子。 与所有依赖包括该地区的jar子。 project-name-version-region-full.jar和project-name-version-region.jar应该存储在存储库中。 在第一个例子中,分类器是区域满的,在第二个区域。 后者正在工作。

想法,以避免spring.handlers / spring.schemas合并在一个jar中的多个弹簧依赖关系时被覆盖

我得到的错误Unable to locate NamespaceHandler when using context:annotation-config运行(java -jar)由maven-assembly-plugin组装并包含我的项目及其所有依赖项的jar。 正如其他人正确地在forum.springsource.org 线程(消息#7/8)上发现了问题,因为存在于不同jar中的文件META-INF/spring.handlers和META-INF/spring.schemas被覆盖当maven-assembly-plugin将jar包重新打包成一个文件时。 查看两个spring – *。jar文件的内容,可以看到文件与classpath相对应的位置相同 $ jar tf spring-oxm-3.0.3.RELEASE.jar META-INF/spring.handlers META-INF/spring.schemas org/springframework/oxm/GenericMarshaller.class … $ jar tf spring-context-3.0.3.RELEASE.jar META-INF/spring.handlers META-INF/spring.schemas org/springframework/context/ApplicationContext.class 是不是可以将META-INF文件夹放在特定的包中? 如果是这样的想法,我会build议,(希望它适用)是把META-INF/spring.shemas和META-INF/spring.handlers文件放在它们引用的包下。 $ jar tf spring-oxm-3.0.3.RELEASE.jar org/springframework/oxm/META-INF/spring.schemas org/springframework/oxm/META-INF/spring.handlers org/springframework/oxm/GenericMarshaller.class … $ jar tf spring-context-3.0.3.RELEASE.jar org/springframework/context/META-INF/spring.handlers org/springframework/context/META-INF/spring.schemas org/springframework/context/ApplicationContext.class 这样,它们在单个jar中合并时不会发生冲突。 你怎么看待这件事?

Maven 2程序集与依赖关系:范围内的“系统”jar不包括在内

我正在使用maven-assembly插件来创build我的应用程序的jar,包括它的依赖关系如下: <assembly> <id>macosx</id> <formats> <format>tar.gz</format> <format>dir</format> </formats> <dependencySets> <dependencySet> <includes> <include>*:jar</include> </includes> <outputDirectory>lib</outputDirectory> </dependencySet> </dependencySets> </assembly> (我省略了一些与问题无关的其他内容) 到目前为止,这工作正常,因为它创build一个lib目录与所有的依赖。 但是,我最近添加了一个新的依赖项,其范围是system ,它不会将其复制到lib输出目录。 我必须在这里失去基本的东西,所以我呼吁帮助。 我刚添加的依赖关系是: <dependency> <groupId>sourceforge.jchart2d</groupId> <artifactId>jchart2d</artifactId> <version>3.1.0</version> <scope>system</scope> <systemPath>${project.basedir}/external/jchart2d-3.1.0.jar</systemPath> </dependency> 我能够包括这种依赖的唯一方法是将以下内容添加到汇编元素: <files> <file> <source>external/jchart2d-3.1.0.jar</source> <outputDirectory>lib</outputDirectory> </file> </files> 但是,这迫使我改变POM和程序集文件,每当这个jar子被重命名,如果有的话。 另外,这似乎是错的。 我已经试过在dependencySets和<include>sourceforge.jchart2d:jchart2d</include>使用<scope>runtime</scope> ,但没有运气。 那么如何在maven 2中将一个system范围的jar包含到你的程序集文件? 非常感谢

使用maven构build一个胖jar子

我有一个代码库,我想分发为jar。 它也依赖于外部的jar子,我想在最后的jar子里捆绑。 我听说这可以使用maven-assembly-plug-in来完成,但是我不明白。 有人可以给我一些例子。 现在,我正在使用胖jar来捆绑最后的jar子。 我想用maven实现同样的function。