Estoy usando Maven 3.0.3 en Mac 10.6.6. Tengo un proyecto JAR y cuando ejecuto el comando "mvn clean install: install", aparece el error,
[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]
¿Qué significa esto y cómo puedo solucionarlo? A continuación se muestra mi pom.xml. Déjame saber qué otra información sería útil y editaré esta publicación. Gracias, - Dave
<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>
<url>http://cm-build.myco.com:8080/hudson/view/Tools/job/StarTeamCollisionUtil - TRUNK/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>myco-sonatype-nexus-snapshots</id>
<name>MyCo Sonatype-Nexus Snapshots</name>
<url>http://sonatype.myco.com/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>starteam</groupId>
<artifactId>starteam</artifactId>
<version>1.1.0</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${basedir}/lib/starteam110.jar</systemPath>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0-beta-3</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<linksource>true</linksource>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.3.1</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>dependencies</report>
<report>dependency-management</report>
<report>cim</report>
<report>issue-tracking</report>
<report>license</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>sonatype-nexus</id>
<url>http://sonatype.myco.com/nexus/content/repositories/snapshots/</url>
</repository>
</distributionManagement>
<scm>
<url>https://starteam.cmass.myco.com/BorlandStarTeam/BorlandStarTeam.jsp</url>
</scm>
<issueManagement>
<system>StarTeam</system>
<url>https://starteam.cmass.myco.com/BorlandStarTeam/BorlandStarTeam.jsp</url>
</issueManagement>
<ciManagement>
<system>Hudson</system>
<url>http://cm-build.myco.com:8080/hudson/</url>
</ciManagement>
</project>
TL; DR Para solucionar este problema, invoque el complemento de empaquetado antes, por ejemplo, para
jar
el uso de empaquetadomaven-jar-plugin
, de la siguiente manera:O
Si realmente necesita implementar.
Gotcha Este enfoque no funcionará si tiene un proyecto de varios módulos con diferentes empaques (ear / war / jar / zip); lo que es peor, ¡se instalarán / implementarán artefactos incorrectos! En tal caso, utilice las opciones de reactor para construir únicamente el módulo desplegable (por ejemplo, el
war
).Explicación
En algunos casos, realmente desea ejecutar directamente un objetivo
install:install
odeploy:deploy
(es decir, desdemaven-deploy-plugin
eldeploy
objetivo, no ladeploy
fase de Maven ) y terminaría en la fase molestaThe packaging for this project did not assign a file to the build artifact
.Un ejemplo clásico es un trabajo de CI (un trabajo de Jenkins o Bamboo, por ejemplo) donde en diferentes pasos desea ejecutar / preocuparse por diferentes aspectos:
mvn clean install
realizar pruebas y realizar pruebas de cobertura.mvn sonar:sonar
más opciones adicionalesmvn deploy
, porque volvería a ejecutar las fases anteriores (y compilar, probar , etc.) y desea que su construcción sea efectiva pero rápida .Sí, podría acelerar este último paso al menos omitiendo las pruebas (compilación y ejecución, vía
-Dmaven.test.skip=true
) o jugar con un perfil en particular (para omitir tantos complementos como sea posible), pero es mucho más fácil y claro simplemente ejecutarlomvn deploy:deploy
.Pero fallaría con el error anterior, porque como también se especifica en las Preguntas frecuentes del complemento :
De hecho,
deploy:deploy
necesita cierta información de tiempo de ejecución colocada en el contexto de compilación por fases anteriores (o ejecuciones de complementos / objetivos anteriores).También se ha informado como un error potencial
MDEPLOY-158
:: deploy: deploy no funciona solo para Implementar artefactos en el repositorio remoto de MavenPero luego rechazado como no un problema.
La
deployAtEnd
opción de configuración delmaven-deploy-plugin
no ayudará tampoco en ciertos escenarios porque tenemos pasos de trabajo intermedios para ejecutar:Entonces, ¿cómo solucionarlo?
Simplemente ejecute lo siguiente en un tercer / último paso similar:
El
maven-jar-plugin
no va a volver a crear cualquier frasco como parte de su construcción, gracias a suforceCreation
conjunto de opciones afalse
por defecto:Pero poblará muy bien el contexto de compilación para nosotros y nos hará
deploy:deploy
felices. No hay pruebas que omitir, no hay perfiles que agregar. Justo lo que necesitas: velocidad.Nota adicional: si está utilizando el
build-helper-maven-plugin
,buildnumber-maven-plugin
o cualquier otro complemento similar para generar metadatos más adelante utilizados por elmaven-jar-plugin
(por ejemplo, entradas para el archivo de manifiesto), lo más probable es que tenga ejecuciones vinculadas a lavalidate
fase y aún desea tenerlas durante eljar:jar
paso de compilación (y aún así mantener una ejecución rápida). En este caso, la sobrecarga casi inofensiva es invocar lavalidate
fase de la siguiente manera:Sin embargo, otra nota adicional: si no lo ha hecho
jar
pero, digamos,war
empaquetado, úselowar:war
antes de instalar / implementar en su lugar.Entendido como se señaló anteriormente, verifique el comportamiento en proyectos de múltiples módulos.
fuente
Esta respuesta es sobre una pregunta muy antigua para ayudar a otros que enfrentan este problema.
Enfrento este error fallido mientras trabajaba en mi
Java
proyecto usandoIntelliJ IDEA
IDE.esto falla, cuando elijo
install:install
debajoPlugins - install
, como se señala con la flecha roja en la imagen de abajo.Una vez seleccionado el corro
install
bajoLifecycle
como se ilustra arriba, el problema ha ido, y mis experto instale versión de compilación con éxito.fuente
Tengo el mismo problema. El mensaje de error para mí no está completo. Pero en mi caso, agregué un jar de generación con fuentes. Al colocar este código en pom.xml:
Entonces, en la fase de implementación ejecuto source: jar goal que produce jar con sources. Y la implementación termina con BUILD SUCCESS
fuente
debe borrar el archivo de destino, como en jar y otros En C: maneje su carpeta en .m2 vea la ubicación donde se instala y elimine el archivo .jar, el archivo Snaphot y elimine los archivos de destino, luego limpie la aplicación que encontró que se ejecutará
fuente
Este error aparece cuando se usa la versión 3.0.0-M1 de maven-install-plugin (o similar)
Como ya se mencionó anteriormente y también aquí, funciona la siguiente versión del complemento:
fuente
Si bien la respuesta de @ A_Di-Matteo funciona para módulos no múltiples, tengo una solución para módulos múltiples.
La solución es anular cada configuración de complemento para que se una a la fase de
none
con la excepción del complemento jar / war / ear y, por supuesto, el complemento de implementación. Incluso si tiene un solo módulo, mis pruebas rudimentarias muestran que esto es un poco más rápido (por razones que no sé) en cuanto al rendimiento.Así el truco está en hacer un perfil que haga lo anterior que se active cuando solo quieras desplegar.
A continuación se muestra un ejemplo de uno de mis proyectos que usa el complemento de sombra y, por lo tanto, tuve que volver a anular el complemento de jar para no sobrescribirlo:
Ahora, si lo ejecuto
mvn deploy -Pdeploy
, solo ejecutará el jar e implementará complementos.La forma de averiguar qué complementos necesita anular es ejecutar la implementación y mirar el registro para ver qué complementos se están ejecutando. Asegúrese de realizar un seguimiento de la
id
configuración del complemento, que se encuentra detrás del nombre del complemento.fuente
Tuve el mismo problema pero ejecuté mvn install inicialmente (no install: install como se mencionó anteriormente).
La solución es incluir:
En la sección de administración de complementos.
fuente