标签: maven-install-plugin

Maven:此项目的包装未将文件分配给构建工件

我在Mac 10.6.6上使用Maven 3.0.3.我有一个JAR项目,当我运行命令"mvn clean install:install"时,我收到错误,

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install (default-cli) on project StarTeamCollisionUtil: The packaging for this project did not assign a file to the build artifact -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该如何解决?下面是我的pom.xml.让我知道其他信息会有所帮助,我会编辑这篇文章.谢谢, - 戴夫

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myco.starteam.util</groupId>
<artifactId>StarTeamCollisionUtil</artifactId>
<packaging>jar</packaging>
<name>StarTeam Collision Util</name>
<description>
    The StarTeam Collision Utility provides developers and release engineers alike the ability to
    compare files attached to a set of CRs to see if conflicts exist in the change set.
</description>
<version>1.0-SNAPSHOT</version> …
Run Code Online (Sandbox Code Playgroud)

pom.xml maven-3 maven maven-jar-plugin maven-install-plugin

101
推荐指数
5
解决办法
9万
查看次数

在Maven尝试解决之前,将本地jar依赖项作为生命周期的一部分进行安装

由于两个依赖项之间存在一些不兼容性,我被迫制作了一个依赖项的着色版本.这意味着我的项目现在依赖于本地.jar文件.

我以前完全没问题,只需使用mvn install-file将.jar安装到我的本地存储库,然后再运行mvn install:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=lib/my-custom-jar-1.0.0.jar
mvn install
Run Code Online (Sandbox Code Playgroud)

但是,我的项目现在将位于一个自动构建服务器上,该服务器只会执行mvn clean install其他操作.

通过寻找很长一段时间,我找到了几个解决方案,但没有一个是完美的.

我将在下面写下我发现的解决方案,但是我发布了这个问题,希望有人能更好地解决这个问题.

java maven maven-install-plugin

16
推荐指数
1
解决办法
1万
查看次数

将 JAR 安装到存储库时,Maven 不读取 POM

我已按照此处的指南将 JAR 文件安装到我的本地存储库中。

我运行以下命令:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=log4j-weblayout-0.0.1-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

JAR 文件是使用 Maven 构建的,其中包含一个 POM 文件,其中列出了其依赖项。JAR 中的文件具有以下路径:

/META-INF/maven/in.ksharma/log4j-weblayout/pom.xml
Run Code Online (Sandbox Code Playgroud)

Maven 安装工件但不读取其 POM。它创建一个空的 POM 文件,该文件没有任何依赖信息:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>in.ksharma</groupId>
  <artifactId>log4j-weblayout</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <description>POM was created from install:install-file</description>
</project>
Run Code Online (Sandbox Code Playgroud)

如何确保 JAR 中的 POM 是已安装的那个?

编辑:

JAR 中各种文件的内容如下。

/META-INF/MANIFEST.MF

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: kshitiz
Created-By: Apache Maven 3.1.0
Build-Jdk: 1.8.0
Run Code Online (Sandbox Code Playgroud)

/META-INF/maven/in.ksharma/log4j-weblayout/pom.properties

#Generated by Maven
#Wed Oct 08 19:48:28 IST 2014
version=0.0.1-SNAPSHOT
groupId=in.ksharma
artifactId=log4j-weblayout
Run Code Online (Sandbox Code Playgroud)

/META-INF/maven/in.ksharma/log4j-weblayout/pom.xml

<project …
Run Code Online (Sandbox Code Playgroud)

pom.xml maven-3 maven maven-install-plugin

6
推荐指数
1
解决办法
3559
查看次数

如何将 Maven 嵌入到我的应用程序中?

我想将 Maven 或具有所有魔力的库嵌入到我的 Java 应用程序中。

要点:

  • 他们是我想要执行的两项任务:

    1/ 在本地存储库中
    发布 jar 2/ 在私有企业存储库 (Nexus) 中发布 jar

  • 所有必需的 jar 必须位于公共 Maven 存储库中

  • jar 应该与 Maven 版本无关(即不特定于 Maven 2 或 3)

如果可以,请提供您的回复的片段。

java maven-2 maven maven-deploy-plugin maven-install-plugin

5
推荐指数
1
解决办法
3219
查看次数

如何强制Maven使用maven-install-plugin 2.5版?

我想用maven-install-plugin安装几个罐到我当地的maven仓库.我的maven 3.2.1安装使用此插件的2.4版本,需要指定很多参数.我想使用需要较少参数的2.5版,如http://maven.apache.org/plugins/maven-install-plugin/usage.html中所述.如果我mvn install:install-file从具有以下pom.xml文件的文件夹运行 ,则它使用版本2.5:

<pluginManagement>
 <plugins>
   <plugin>
       <artifactId>maven-install-plugin</artifactId>
       <version>2.5</version>
   </plugin>
 </plugins>
Run Code Online (Sandbox Code Playgroud)

否则,它仍然使用旧插件.如何强制Maven使用maven-install-plugin版本2.5(如果我从任何文件夹运行install-file)?

PS 如何安装第三方源和javadoc JAR?不包含答案.

maven maven-install-plugin

5
推荐指数
1
解决办法
2833
查看次数

如何解决 Maven“此项目的打包未将文件分配给构建工件”错误?

I\xe2\x80\x99m 使用 Maven 3.2.3。我曾经能够在 WAR 项目上运行 \xe2\x80\x9cmvn clean install\xe2\x80\x9d ,并且 WAR 将安装到我的本地存储库。然而,我最近添加了一个配置,以便我的 WAR 可以就地构建(配置如下)。现在,当我跑步时

\n\n
mvn clean install\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到错误

\n\n
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.5.2:install (install) on project myproject: The packaging for this project did not assign a file to the build artifact -> [Help 1]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何解决?我尝试将 maven-install-plugin 的 \xe2\x80\x9cinstall\xe2\x80\x9d 目标设为默认目标,但这并没有帮助。下面是我的 Maven 配置 \xe2\x80\xa6

\n\n
                <plugin>\n                    <artifactId>maven-clean-plugin</artifactId>\n                    <version>2.4.1</version>\n                    <configuration>\n                        <filesets>\n                            <fileset>\n                                <directory>${project.basedir}/src/main/webapp/WEB-INF/classes</directory>\n                            </fileset>\n                            <fileset>\n                                <directory>${project.basedir}/src/main/webapp/WEB-INF/lib</directory>\n                            </fileset>\n                        </filesets>\n                    </configuration>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-war-plugin</artifactId>\n                    <version>2.6</version>\n                    <configuration>\n                        <useCache>true</useCache>\n                        <workDirectory>/tmp/${project.artifactId}/war/work</workDirectory>\n                    </configuration>\n …
Run Code Online (Sandbox Code Playgroud)

maven-3 maven maven-war-plugin maven-install-plugin

5
推荐指数
1
解决办法
1万
查看次数

如何使用maven部署插件3.0.0-M1生成和上传校验和?

生成校验和的功能似乎已从安装插件转移到部署插件(请参阅MDEPLOY-231)。似乎不再有参数来控制校验和的生成和部署,无论是在安装插件 3.0.0-M1中(“createChecksum”参数显然不再存在),还是在部署插件 3.0.0-中M1

我假设现在默认情况下会激活校验和(请参阅此博客文章),但最终我的本地存储库和 Artifactory 中都没有任何校验和,并且我在日志中看不到任何与校验和相关的内容(运行 mvn deploy)。

这应该不重要,但也许是:我使用的是 https 传输,而不是 ssh。

这里是日志摘录:

[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ base-module ---

[INFO] Installing C:\data\src\s-libs\base\target\base-module-0.2.5-SNAPSHOT.jar to (...)
[INFO] Installing C:\data\src\s-libs\base\pom.xml to (...)
[INFO] Installing C:\data\src\s-libs\base\target\base-module-0.2.5-SNAPSHOT-sources.jar to (...)
[INFO] 
[INFO] --- maven-deploy-plugin:3.0.0-M1:deploy (default-deploy) @ base-module ---
Downloading (...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3.jar
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3.pom
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3-sources.jar
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/maven-metadata.xml
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/maven-metadata.xml
(...)
Run Code Online (Sandbox Code Playgroud)

checksum maven maven-deploy-plugin maven-install-plugin

5
推荐指数
1
解决办法
2911
查看次数

Maven安装传递依赖项

我有一个项目,我需要在Maven上安装一个库,以便我可以在所述项目上使用它.我遇到的问题是所说的库,比如说libA,它本身就有一个依赖,libB,它也是第三方的.

我已使用此代码将两者添加到本地存储库:

mvn install:install-file -Dfile=VerBDConverter.jar -DgroupId=verbdconverter
-DartifactId=verbdconverter -Dversion=1.00 -Dpackaging=jar -DgeneratePom=true  
Run Code Online (Sandbox Code Playgroud)

对于lib 2也是如此.问题是,当我转到我的项目的pom并为libA添加<dependency>时,Maven没有选择libB.

问题:毕竟Maven应该得到libA的依赖,但事实并非如此.

java eclipse maven maven-install-plugin

4
推荐指数
1
解决办法
2820
查看次数

如何从mvn clean install中排除项目?

可能重复:
如何使用命令行从maven构建中排除某些模块

我正在maven clean install一个pom文件中运行一个包含几个模块(和子模块)的文件.我想知道是否可以运行maven构建但是在命令行上指定从构建中跳过一个模块(目前我从构建中手动排除它们,但我更喜欢通过命令行来完成它).

我知道使用-pl你可以有选择地选择项目,但我想要的是有选择地排除(以黑名单方式)一些.

maven-2 maven maven-install-plugin

3
推荐指数
1
解决办法
3971
查看次数

Maven 项目打包既是战争也是构建/安装 jar

我有一个 Maven 3.3 项目,主要输出是一个 war 文件:

<artifactId>pro</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
Run Code Online (Sandbox Code Playgroud)

我正在使用 maven 插件来构建一个 jar 文件,该文件进入target/pro-1.0-SNAPSHOT.jar并起作用。

我想将此 jar 安装到本地 maven 存储库,因此我使用 maven install 插件来执行此操作:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.5.2</version>
    <configuration>
        <classifier>jar</classifier>
        <packaging>jar</packaging>
        <file>target/pro-1.0-SNAPSHOT.jar</file>
    </configuration>
    <executions>
        <execution>
            <id>do-jar-install</id>
            <phase>install</phase>
            <goals>
                <goal>install</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

整个构建工作正常,除了 jar 安装步骤是安装战争,而不是 jar。我如何覆盖它?

我在这里查看我可以使用的内容:http : //maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html

这是我构建的日志:

**

构建 jar:/Users/mike/code/workspace/pro/target/pro-1.0-SNAPSHOT.jar

[信息] --- maven-install-plugin:2.5.2:install (do-jar-install) @ pro

[信息] 将 /Users/mike/code/workspace/pro/target/pro-1.0-SNAPSHOT.jar 安装到 /Users/mike/.m2/repository/net/mikeski/pro/1.0-SNAPSHOT/pro-1.0-SNAPSHOT 。战争

请注意最后一行 - 它正在拿起罐子,但正在安装一场战争

我该如何解决?

根据要求,这里是 jar 插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java maven maven-jar-plugin maven-install-plugin

3
推荐指数
1
解决办法
3031
查看次数

将自定义 Maven 插件从本地 jar 安装到具有依赖项的本地存储库

我有一个 Maven 插件,我尚未将其上传到中央存储库,但我想在我的项目中使用它。

什么有效

我可以像这样安装 Maven 插件:

git clone https://github.com/RudolfVonKrugstein/jinja-maven-plugin.git
cd jinja-maven-plugin
mvn install
Run Code Online (Sandbox Code Playgroud)

然后我可以使用像这样的 pom.xml 插件:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>de.wintercloud</groupId>
    <artifactId>sample</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>de.wintercloud</groupId>
            <artifactId>jinja-maven-plugin</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>de.wintercloud</groupId>
                <artifactId>jinja-maven-plugin</artifactId>
                <version>1.0</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>renderjinja</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <outputFile>out.txt</outputFile>
                    <templateFile>templ.jinja</templateFile>
                    <varFile>vars.yaml</varFile>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

以下是与编译相关的其他文件:

寺庙神社:

{{ Name }}
Run Code Online (Sandbox Code Playgroud)

vars.yaml:

Name: MyWonderfullName
Run Code Online (Sandbox Code Playgroud)

这有效:

> mvn compile
> cat out.txt 
Run Code Online (Sandbox Code Playgroud)

我的名字

好的!

什么不起作用

现在我正在尝试将该插件作为 jar 提供给我的同事,以便他们可以简单地安装该 jar。想法是这样做:

git clone https://github.com/RudolfVonKrugstein/jinja-maven-plugin.git …
Run Code Online (Sandbox Code Playgroud)

maven maven-install-plugin

3
推荐指数
1
解决办法
3301
查看次数

maven插件忽略了本地pom插件

我是maven的新手,无法弄明白.

我在我的pom.xml文件中有插件的这个配置,但看起来mvn不使用我的配置.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<packaging>jar</packaging>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>
${project.build.directory}/${project.artifactId}-${project.version}.jar
</file>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

当我注释掉这个插件时,我收到同样的错误.博客上有一些旧的讨论,认为maven忽略了执行中的配置.它还是个问题吗?我怎样才能让maven读取我的插件声明而不是别的?当我的依赖项被注释掉时它会运行什么?

错误

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-    plugin:2.3.1:install-file (default-cli) on project core: The parameters 'file' for goal     org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file are missing or invalid ->     [Help 1]
Run Code Online (Sandbox Code Playgroud)

maven maven-install-plugin

2
推荐指数
1
解决办法
2243
查看次数

mvn install local jar 出错:无法执行目标 org.apache.maven.plugins:maven-install-plugin...(是一个目录) -&gt; [帮助 1]

我正在尝试将本地 jar 安装到我的 Maven 项目中,我正在从我的项目文件夹运行此命令:

mvn install:install-file -Dfile= ~/Downloads/<jar_path> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=jar -DgeneratePom=false
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install-file (default-cli) on project my-project: Error installing artifact 'my-artifact': Failed to install artifact groupId:artifactId:jar:version: /Users/my-project-path (Is a directory) -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven maven-install-plugin jakarta-ee

2
推荐指数
1
解决办法
9917
查看次数