Tag: maven assembly plugin

如何将多模块maven项目组装成一个WAR?

类似的问题在这里 我想从3个不同的maven模块部署一个结果WAR。 战争模块绝对没有冲突: 第一个有Java类和一些WEB-INF /工件 第二个只是API – 接口 – 必须已经存在于容器中或者产生战争的一部分(这就是我想要的) 第三个是实现类,WEB-INF / artifacts(spring infrastructure,web.xml等) 第一个取决于接口和实现。 第三个取决于接口。 我有可能的选择混乱。 我是否使用Overlays? 或者我是否使用程序集插件来集成第二个类? 我使用Cargo插件吗? 或者,如果我从不同的模块指定webResources,它是否由maven-war-plugin完成? 因为这个家伙几乎和我一样,但只有2个war模块,而且他不使用汇编插件,也不使用Overlays …. 请告诉我,这怎么做得好?

Apache Maven Assembly Plugin不支持OSGi捆绑包

我有一个Maven OSGi多模块项目。 当OSGi从各个项目模块中挑选模块jar时,该项目运行良好。 (见下文1.1.B) 。 但是,使用第二种方法时,每当我尝试使用maven-assembly-plugin将bundle存放到中央文件夹(D:/ parent / provider / target / modules)时, bundle.getRegisteredServices() (下面的视图1.1.A)都会返回null。 版本:2.6 : framework.getBundleContext().installBundle(“file:D:/parent/provider/target/modules/OSGiDmHelloWorldProvider-1.0.jar”); framework.getBundleContext().installBundle(“file:D:/parent/provider/target/modules/OSGiDmHelloWorldConsumer-1.0.jar”); 使用第二种方法查看下面的1.1.C以获得控制台输出。 1.1.A if (bundle.getRegisteredServices() != null) { for (ServiceReference serviceReference : bundle.getRegisteredServices()) System.out.println(“\tRegistered service: ” + serviceReference); } 为什么我不能用第二种方法访问捆绑包? GitHub上 我在GitHub上有一个SSCCE。 运行主课程将显示我的困境。 谢谢大家。 1.1.B package main; import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; […]

maven-assembly-plugin:如何使用appendAssemblyId

我有一个多模块Maven项目,在一个模块中我想在构建期间创建两个工件: 主要工件是一个jar库,其他一些模块将依赖它。 一个执行一些辅助函数的可执行jar文件。 没有其他模块依赖于此,它仅供用户在某些情况下手动运行。 这是我用来配置maven-assembly-plugin插件的代码: maven-assembly-plugin 2.4 dist-assembly package single bso jar-with-dependencies helper-${project.version} false HelperMain 我将appendAssemblyId设置为false ,否则-jar-with-dependencies将被附加到最终名称,我不认为需要它。 省略它可以提供更清晰,更易于使用的文件名。 当我运行mvn integration-test我收到以下警告: [警告]配置选项:’appendAssemblyId’设置为false,并且缺少’classifier’。 它不会附加汇编文件:[…] / target / helper-5.0.0-SNAPSHOT.jar,而是成为主项目工件的文件。 注意:如果为此项目提供了多个描述符或描述符格式,则此文件的值将是不确定的! [警告]用程序集文件替换预先存在的项目主工件文件:[…] / target / my.module-5.0.0-SNAPSHOT.jar:[…] / target / helper-5.0.0- SNAPSHOT.jar 有两件事激怒了我: 尽管警告声称它将用helper-5.0.0-SNAPSHOT.jar替换my.module-5.0.0-SNAPSHOT.jar,但它实际上并没有这样做,并且当构建完成时,两个文件仍然具有不同的大小。 为什么有关更换工件的警告出现? 似乎classifier器已被弃用,为什么警告要求我使用它?

从单个Maven项目创建多个可运行的JAR(包含依赖项)

我有一个有多个主要类的maven项目。 我想从这些项目中生成可运行的Jars(包括alle dependices)。 我目前有以下构建配置(使用maven.assembly): maven-assembly-plugin classpath.to.my.mainClass jar-with-dependencies 他们是通过maven-assembly来实现这一目标的吗? 如果没有,实现目标的最简单方法是什么?

从Java启动Spring应用程序的exception

我能够使用Maven编译并启动我的Spring项目: mvn -e clean compile exec:java -Dexec.mainClass=de.fraunhofer.fkie.tet.vmware.manager.Test 但是,当我使用maven-assembly-plugin (包括applicationContext.xml )将所有jar组装在一个文件中时,我总是在java执行期间得到一个Exception : java -cp target/test-jar-with-dependencies.jar:. de.fraunhofer.fkie.tet.vmware.manager.Test INFO: Loading XML bean definitions from class path resource [applicationContext.xml] Sep 6, 2010 10:37:21 AM org.springframework.util.xml.SimpleSaxErrorHandler warning WARNING: Ignored XML validation warning org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document ‘http://www.springframework.org/schema/context/spring-context.xsd’, because 1) could not find the document; 2) the document […]

使用maven-assembly-plugin创建两个可执行的jar

我有一个Maven项目,我想从中创建两个可执行的jar文件。 一个将由用户以交互方式使用,另一个将作为预定作业运行,该作业读取前者生成的日志文件。 最后,我希望除了MANIFEST.MF文件中的Main-Class属性之外,两个jar文件是相同的。 我正在使用maven-antrun-plugin创建一个可执行jar,这似乎工作正常,直到我尝试通过引入Maven配置文件创建第二个jar文件。 我的POM文件的相关部分如下所示: publisher ${project.artifactId} … maven-assembly-plugin 2.4 false ${project.artifactId} fully.qualified.path.Publisher jar-with-dependencies package single logReader ${project.artifactId} … maven-assembly-plugin 2.4 false ${project.artifactId}-logReader fully.qualified.path.LogReader jar-with-dependencies package single 实际上,两者之间的唯一区别是插件中定义的“finalName”和“mainClass”元素。 当我尝试在两个配置文件上执行mvn:package时(我顺便使用IntelliJ IDEA),我得到两个.jar文件,但是一个是正确的而另一个是不正确的。 “正确”的包含所有依赖项和有效的MANIFEST.MF文件。 “不正确”的一个不包含依赖项,MANIFEST.MF文件缺少我需要的“Main-Class”属性,以使其可执行。 我发现,如果我只运行一个配置文件或另一个配置文件,它工作正常但是,如果我尝试一次执行两个配置文件,它会失败。 我的日志中也有以下注释,但我必须承认我并不完全理解他们的意思: [INFO] Building jar: …/target/publisher.jar … [INFO] Building jar: …/target/publisher-logReader.jar [WARNING] Configuration options: ‘appendAssemblyId’ is set to false, and ‘classifier’ is missing. […]

Maven程序集:添加相同工件的不同版本

我使用maven程序集插件创建我的应用程序存档。 我的pom中存在的所有依赖都包含在内,没有任何问题。 现在我需要包含两个或更多版本的相同工件。 如果在我的pom我放 […] db.test my-model 1.0.3 db.test my-model 1.1.0 源代码依赖性解析器删除旧版本,只有1.1.0打包在存档中 我尝试使用程序集xml描述符文件包含jar。 我没有找到任何解决方案。 一种可能的解决方案是手动将所有需要的model.jar放入文件夹中,并告诉程序集将其复制到存档中。 但我正在寻找一个更可配置的解决方案。 任何想法 ?