in meinem pom Ich habe das exec-maven-Plugin hinzugefügt, um eine Java-Klasse aufzurufen, die eine Datei generieren wird. Diese Klasse benötigt einige Parameter, die an die Hauptmethode übergeben werden müssen. Eine davon ist der Speicherort einer Eingabedatei (außerhalb des Projekts). Bis jetzt habe ich einen relativen Pfad für diese wurde unter Verwendung der gut arbeitet:Maven - pass Argument in exec-maven-plugin verwenden
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.laco.projectmaster.util.LanguageGenerator</mainClass>
<arguments>
<argument>../PM-Config/dev/PMLanguage.xls</argument>
<argument>PM4.0</argument>
<argument>${project.build.outputDirectory}/com/laco/projectmaster/props/resources</argument>
<argument>ProjectMaster</argument>
<argument>Created during maven build (POM Version: ${pom.version})</argument>
</arguments>
</configuration>
</plugin>
Jetzt fange ich hudson zu verwenden, um/Paket zu installieren und die Kriege einzusetzen und ich kann diesen relativen Pfad nicht mehr verwenden. Einfach Ich dachte, ich gehe einfach den Speicherort der Datei eingegeben wird, wenn Maven wie Aufruf:
mvn sauber Paket -Dlangdir = C:/somedir
und dann die pom wie ändern:
<argument>${langdir}/PMLanguage.xls</argument>
Dieser Parameter wird hier jedoch einfach ignoriert. Der Pfad, den die Hauptklasse als Argument erhält, wird null/PMLanguage.xls. Der Parameter selbst ist in maven verfügbar, ich habe es mit einem Echo im Antrun Plugin erfolgreich getestet. Der richtige Pfad wurde wiedergegeben.
Sind die Parameter, die Sie an Maven übergeben, dann standardmäßig nicht verfügbar, egal wo Sie sie im Pom referenzieren?
Dank für jede Hilfe,
Stijn
Pascal, es tut mir sehr leid, aber es sieht so aus, als hätte ich deine kostbare Zeit verschwendet. Ich kann es nicht erklären, aber wenn ich die Verpackung jetzt neu starte, funktioniert es gut. Ich habe nichts dazwischen geändert, daher verstehe ich nicht, warum es gestern nicht funktionierte. Tut mir leid, aber danke. –