2012-03-27 6 views
22

ich zur Zeit mit:Installationsdatei Kommandozeile statt POM Mit

mvn install:install-file -Dfile={path/to/my/legacy.jar} -DgroupId=horrible -DartifactId=legacy.jar -Dversion=1.2.3 -Dpackaging=jar 

einige alte Legacy-Gläser in meine Repo zu importieren. Dies hat gut funktioniert und ist der empfohlene Ansatz. Es scheint, als ob dies mit einem POM statt in der Befehlszeile + Skript, die ich jetzt benutze, getan werden könnte. Ich denke, es ist sauberer zu haben:

mvn install:install-file 

und meine Repo-Geschäft eher die Versionsdetails lassen als speichern diese Informationen in einem nicht-Maven-Skript (die für Maven ungerade ist). Ich habe versucht, diese -D-Einstellungen über das Settings-Tag verfügbar zu machen, aber das hat nicht funktioniert. Hat jemand anderes das versucht und es zum Laufen gebracht?

+0

Vielleicht den Punkt fehlt mir, aber warum haben Sie Skript, um es? Sicherlich müssen Sie diese Legacy-Gläser nur einmal in Ihr Repo importieren? – artbristol

+0

Nur eine Wartung Sache, das ist so, wenn wir wieder in den Repo exportieren müssen (aus welchem ​​Grund auch immer) wir exportieren mit der gleichen GroupId/Versionsnummer. – reccles

Antwort

30

Okay, beantworte meine eigene Frage: P. Sie können dies tun, indem Sie Eigenschaften definieren, ich nahm ursprünglich an, dass die GroupId usw. automatisch als Eigenschaften exportiert wurden, aber sie sind nicht.

<?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>com.whatever</groupId> 
    <artifactId>Stuff</artifactId> 
    <version>1.2.3</version> 

    <description> 
    Description of why this horrible jar exists. 
    </description> 

    <properties> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>${project.artifactId}</artifactId> 
    <version>${project.version}</version> 
    <packaging>${project.packaging}</packaging> 
    <file>mylegacy.jar</file> 
    </properties> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-install-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>install</phase> 
      <goals> 
       <goal>install-file</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

können Sie jetzt Dateien installieren mit:

mvn install 

und diese pom.xml. Ich habe dies getestet mit Maven 3 und 2 nicht

Für mehrere Dateien siehe auch Maven POM file for installing multiple 3rd party commercial libraries

+1

Danke dafür. Genau das, was ich suchte – mahonya

+4

Ich fand auch das, die möglicherweise besser funktionieren, wenn Sie mehrere Gläser haben: http://StackOverflow.com/Questions/10802280/Multiple-Installinstall-File-in-As-Single-Pom-Xml – mahonya

+0

up für die Beschreibung gewählt :) – Rondo