相关疑难解决方法(0)

什么是Maven Snapshot,为什么我们需要它?

我对Maven Snapshot的含义以及为什么要构建一个它有点困惑?

java dependency-management maven

799
推荐指数
9
解决办法
30万
查看次数

具有依赖关系的Maven 2程序集:不包括范围"系统"下的jar

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

(我省略了一些与问题无关的其他内容)

到目前为止,这工作得很好,因为它创建了一个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>
Run Code Online (Sandbox Code Playgroud)

我能够包含此依赖项的唯一方法是将以下内容添加到assembly元素:

<files>
    <file>
        <source>external/jchart2d-3.1.0.jar</source>
        <outputDirectory>lib</outputDirectory>
    </file>
</files>
Run Code Online (Sandbox Code Playgroud)

但是,这会强制我在重命名此jar时更改pom和程序集文件(如果有的话).而且,这似乎是错的.

我有试过<scope>runtime</scope>dependencySets<include>sourceforge.jchart2d:jchart2d</include>没有运气.

那么如何system在maven 2中将scoped jar 包含到汇编文件中?

非常感谢

maven-2 maven-plugin maven-assembly-plugin

59
推荐指数
4
解决办法
7万
查看次数

如何从不知道要卸载的工件的工件名称或组ID的脚本执行mvn install的相反操作?

这听起来应该很容易,但我还没有找到答案.如果我使用mvn install安装工件,我该如何删除所述工件?我尝试使用依赖:purge-local-repository,但它只删除依赖项 - 而不是实际的工件.

有任何想法吗?如果有帮助,我正在使用maven 2.2.1.

编辑:我知道类似的问题,但我不满意删除我的整个.m2 repo只是为了删除单个SNAPSHOT依赖.另外,正如我所提到的,purge-local-repository不起作用,因为它似乎只是删除依赖项而不是实际的工件.

编辑2:我可能不太清楚.考虑这个例子.我有一个名为my-artifact的SNAPSHOT工件.my-artifact有两个依赖项:my-dependency-one和my-dependency-two.我想写一个脚本,删除所有三个,而不必解析pom.xml文件.换句话说,我想清除my-dependency-one,my-dependency-two和AND -artifact,而不必显式输入maven,我想删除my-artifact.

在"重复问题"的答案中,它建议进入并手动删除.m2仓库中的工件.这不是这个问题的答案,因为脚本在执行maven命令时不知道组或工件名称.我想要一些类似于依赖的东西:purge-local-repository,除了它不仅要删除依赖项,还要删除工件本身.

我猜测基于评论中的混淆,这是不可能的.如果不是那个是可以接受的答案.

maven-2 maven

9
推荐指数
1
解决办法
5715
查看次数