J'essaie de construire du code mulesoft avec maven dans Bamboo.Build a réussi, mais donne maintenant des erreurs comme ci-dessous. J'utilise Bamboo 6.5.0 et jdk 1.8. avec Maven 3. Les détails de l'erreur sont comme ci-dessous et mon pom.xml, settings.xml ainsi! Toutes les contributions appréciées!
build 01-Oct-2018 11:46:02 Caused by: org.Apache.maven.plugin.MojoExecutionException: NoFileAssignedException
build 01-Oct-2018 11:46:02 at org.Apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.Java:152)
build 01-Oct-2018 11:46:02 at org.Apache.maven.plugins.install.InstallMojo.execute(InstallMojo.Java:108)
build 01-Oct-2018 11:46:02 at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:134)
build 01-Oct-2018 11:46:02 at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
build 01-Oct-2018 11:46:02 ... 20 more
build 01-Oct-2018 11:46:02 Caused by: org.Apache.maven.shared.transfer.project.NoFileAssignedException: The packaging plugin for this project did not assign a main file to the project but it has attachments. Change packaging to 'pom'.
build 01-Oct-2018 11:46:02 at org.Apache.maven.shared.transfer.project.install.internal.DefaultProjectInstaller.install(DefaultProjectInstaller.Java:116)
build 01-Oct-2018 11:46:02 at org.Apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.Java:140)
build 01-Oct-2018 11:46:02 ... 23 more
Mon pom.xml et settings.xml se présentent comme ci-dessous.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mule</groupId>
<artifactId>mycontacts-mule-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>mule</packaging>
<name>Mule mycontacts-mule-api Application</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<mule.version>3.9.0</mule.version>
<mule.munit.support.version>3.9.1</mule.munit.support.version>
<munit.version>1.3.7</munit.version>
<mule.tools.version>1.2</mule.tools.version>
<application-name>mycontacts-mule-api</application-name>
<proxy.api.version>1.0:15535407</proxy.api.version>
<implementation.Host>null</implementation.Host>
<implementation.port>80</implementation.port>
<implementation.path>/api</implementation.path>
</properties>
<distributionManagement>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://prdbambap02:8081/artifactory/libs-release</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://prdbambap02:8081/artifactory/libs-snapshot</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-app-maven-plugin</artifactId>
<version>${mule.tools.version}</version>
<extensions>true</extensions>
<configuration>
<copyToAppsDirectory>true</copyToAppsDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/app/</directory>
</resource>
<resource>
<directory>mappings/</directory>
</resource>
<resource>
<directory>src/main/api/</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<testResources>
<testResource>
<directory>src/test/munit</directory>
</testResource>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build>
<!-- Mule Dependencies -->
<dependencies>
<!-- Xml configuration -->
<dependency>
<groupId>com.mulesoft.muleesb</groupId>
<artifactId>mule-core-ee</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- Xml configuration -->
<dependency>
<groupId>com.mulesoft.muleesb.modules</groupId>
<artifactId>mule-module-spring-config-ee</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- Mule Transports -->
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-file</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-http</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.muleesb.transports</groupId>
<artifactId>mule-transport-jdbc-ee</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.muleesb.transports</groupId>
<artifactId>mule-transport-jms-ee</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-vm</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- Mule Modules -->
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-scripting</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-xml</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- for testing -->
<dependency>
<groupId>org.mule.tests</groupId>
<artifactId>mule-tests-functional</artifactId>
<version>${mule.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-apikit</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- dependencies for Mule CoE Begins -->
<!-- https://mvnrepository.com/artifact/guru.nidi.raml/raml-tester-standalone -->
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-module-proxy</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-module-raml-el-gw</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!--<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId> mule-module-spring-config-gw</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency> -->
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-module-spring-config-gw</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>api-gateway-client</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>gateway-core</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.munit</groupId>
<artifactId>mule-munit-support</artifactId>
<version>${mule.munit.support.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.munit</groupId>
<artifactId>munit-runner</artifactId>
<version>${munit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.munit.utils</groupId>
<artifactId>munit-dbserver-module</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-db</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-ws</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.weave</groupId>
<artifactId>mule-plugin-weave</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-json</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-cxf</artifactId>
<version>${mule.version}</version>
<scope>provided</scope>
</dependency>
<!-- dependencies for Mule CoE Ends -->
</dependencies>
<repositories>
<repository>
<id>Central</id>
<name>Central</name>
<url>http://repo1.maven.org/maven2/</url>
<layout>default</layout>
</repository>
<repository>
<id>mulesoft-releases</id>
<name>MuleSoft Releases Repository</name>
<url>http://repository.mulesoft.org/releases/</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>mulesoft-release</id>
<name>mulesoft release repository</name>
<layout>default</layout>
<url>http://repository.mulesoft.org/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
et mon settings.xml comme ci-dessous
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.mule.tools</pluginGroup>
</pluginGroups>
<servers>
<server>
<id>mule-ee-repo</id>
<username>balalba</username>
<password>blbalbab</password>
</server>
</servers>
<mirrors></mirrors>
<profiles>
<profile>
<id>mule-ee-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<mule-maven-plugin-version>2.2.1</mule-maven-plugin-version>
<mule-username>username</mule-username>
<mule-password>password</mule-password>
<mule-client-id>blbalbalbal</mule-client-id>
<mule-client-secret>blablblalbalba</mule-client-secret>
<deployment-type>cloudhub</deployment-type>
<business-group>group</business-group>
<target-name>null</target-name>
<target-type>null</target-type>
<worker-size>Micro</worker-size>
<worker-count>1</worker-count>
<env-name>SIT</env-name>
</properties>
<repositories>
<repository>
<id>mule-ee-repo</id>
<name>mule-ee-repo</name>
<url>https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>mule-ee-profile</activeProfile>
</activeProfiles>
</settings>
Apache Maven a déployé une nouvelle version du plug-in d'installation Maven dans leurs référentiels. Il ne semble pas qu'il aurait dû aller au Public Repo, mais quand même.
La solution est de corriger la version du plugin Maven dans le fichier Mule POM.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
Il semble que ce soit un problème d'incompatibilité entre le nouveau plugin d'installation de maven et le code mulesoft. Dans mon cas, cela a aidé à utiliser un ancien plugin d'installation - définissez dans pluginManagement la version souhaitée du plugin d'installation maven à utiliser:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
Veuillez mettre à jour le plugin vers la version 1.7, cela devrait résoudre le problème.
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-app-maven-plugin</artifactId>
<version>1.7</version>
<extensions>true</extensions>
<configuration>
<copyToAppsDirectory>true</copyToAppsDirectory>
</configuration>
</plugin>
Cette solution a fonctionné après avoir ajouté le explicite suivant dans mon fichier .pom de projet.
<plugin> <groupId>org.Apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <groupId>org.Apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin>
Dans mon projet, artifiact maven-install-plugin 2.5.2 était déjà inclus, mais pas maven-deploy-plugin. Il semble qu'il utilise un artefact maven-deploy-plugin sous l'eau. Bien qu'il ne soit pas défini dans le fichier .pom du projet, mvn récupère la dernière version dans le référentiel (qui est 3.0.0-M1), ce qui se termine par une erreur.
Même problème ici, qui se produit en raison de la nouvelle version de maven-install-plugin (3.0.0-M1). La solution pour mon cas consiste à ignorer l'installation du projet avec un emballage personnalisé (karaf-Assembly).
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Bien sûr, les artefacts construits ne se termineront pas dans le répertoire .m2, mais c'est correct dans mon cas.
Nous venons de rencontrer le même problème avec nos pipelines ce matin, mais pour arrêter cette NoFileAssignedException lorsque la phase de déploiement se produit, nous avons dû l'exclure explicitement dans le POM pour l'application Mule;
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin >
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
Ignorer le déploiement de l'application n'est pas un problème pour nous, car l'artefact construit est actuellement déployé par Git runner (dans cet environnement particulier).
Il choisit la version 3.0.0-M1 car il est installé dans votre référentiel m2. vous pouvez le restreindre par le versionnage forcé. Ouvrez .m2/repository/org/Apache/maven/plugins/maven-install-plugin/maven-metadata-central-mirror.xml
Changez comme ci-dessous pour la version 2.5.2
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<versioning>
<latest>3.0.0-SNAPSHOT</latest>
<release>2.5.2</release>
<versions>
<version>maven-install-plugin</version>
.....
......
</versions>
<lastUpdated>20180930132927</lastUpdated>
</versioning>
</metadata>