我正在使用maven-assembly插件创建我的应用程序的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>
(我省略了与问题无关的其他内容)
到目前为止,此方法运行良好,因为它创建了一个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>
我能够包括此依赖项的唯一方法是在Assembly元素中添加以下内容:
<files>
<file>
<source>external/jchart2d-3.1.0.jar</source>
<outputDirectory>lib</outputDirectory>
</file>
</files>
但是,这迫使我必须在重命名此jar时更改pom和汇编文件(如果有的话)。同样,这似乎是错误的。
我有试过
那么,如何system在Maven 2的汇编文件中包含作用域的jar?
非常感谢
我不惊讶没有添加系统范围的依赖关系(毕竟,必须通过定义显式提供具有系统范围的依赖关系)。实际上,如果您真的不想将该依赖项放在本地存储库中(例如,因为您想将其作为项目的一部分进行分发),这就是我要做的:
我将依赖项放在项目本地的“文件系统存储库”中。
我会这样声明该存储库pom.xml:
<repositories>
<repository>
<id>my</id>
<url>file://${basedir}/my-repo</url>
</repository>
</repositories>
我只是声明没有system范围的工件,这只是麻烦的根源:
<dependency>
<groupId>sourceforge.jchart2d</groupId>
<artifactId>jchart2d</artifactId>
<version>3.1.0</version>
</dependency>
我不确定100%会满足您的需求,但我认为这是比使用系统范围更好的解决方案。
更新:我应该在原始答案中提到这一点,现在正在修复它。要在基于文件的存储库中安装第三方库,请install:install-file与localRepositoryPath参数一起使用:
mvn install:install-file -Dfile=<path-to-file> \
-DgroupId=<myGroup> \
-DartifactId=<myArtifactId> \
-Dversion=<myVersion> \
-Dpackaging=<myPackaging> \
-DlocalRepositoryPath=<path-to-my-repo>
您可以将其粘贴在* nix shell中。在Windows上,删除“ \”并将所有内容放在一行中。
问题内容: 我有一个独立的Java应用程序,我想将其打包为:myapp.jar。并将所有相关的jar文件复制到“备用文件夹”。理想情况下,我想让Maven更新META- INF文件,以将所有类路径依赖项jar条目添加到其中。 例如,如果我的项目引用了commons.jar,并且当我使用此插件构建程序集时,它将所有.class文件和程序包从commons.jar复制到myappjar- with-d
我在Eclipse4.3中为一个动态web项目使用了ivy托管依赖关系,并且一切正常。在合并包含新模块项目的不同分支之后,Eclipse再也无法创建war了。如果我从部署程序集中移除IvyDependencies,就会创建一个war并再次部署--当然,这个归档丢失了所有依赖项。 在web project中,除了添加项目/模块和依赖项声明之外,没有编译错误,没有提交之间的配置更改。将eclipse配
我正试图让maven下载所有的依赖项(编译、测试、插件等)。)这样我就可以避免让我们的dockerized构建浪费不必要的时间一遍又一遍地下载它们。 我们已经对maven build进行了dockerized,这样我们就可以从jenkins运行它,而无需在jenkins机器上安装大量构建特定的依赖项(Java、redis、maven依赖项等)。我们的构建依赖于增量docker构建,它只执行实际需要
问题内容: 我已经在互联网上搜索了很长一段时间,但无法弄清楚如何配置Maven-war插件或类似的东西,以便系统依赖项包含在内置战争中(WEB-INF / lib文件夹) 在jar-build的情况下,我使用maven依赖插件: 但是我不明白在打仗的情况下该怎么办。我试过使用maven-war插件,但是在构建中不包括系统依赖项。 [更新] 我有以下类型的行为: 在我的POM中,构建战争时,这些依赖
我是和的新手。我正在尝试在远程计算机上运行hdfs MapReduce作业。我没有写入/编辑依赖项文件的权限。我想知道是否可以将我的Maven项目传递给我的MapReduce作业。这样,我就不需要SSH进入远程机器并更改maven项目的依赖关系。我将使用包含远程计算机上未包含的所有所需依赖项的JAR来运行我的MapReduce作业。
异常0:org.jboss.weld.exceptions.deploymentexception:weld-001443:伪作用域bean具有循环依赖关系。依赖关系路径:-托管Bean[class com.my.own.bounded_contexts.client.cache.CacheClientCommPriorizedAcceptRequestService],带有限定符[@any@de