2013-06-10 26 views
7

Witam: Domyślam się, że domyślnie instaluje się maven, zmieniając nazwę pliku zgodnie z identyfikatorem wersji + artefaktu. Na przykład:maven: wdraża nazwę pliku artefaktów

Wdrażanie pliku JAR z artefaktem = A i wersją = V-0.1 spowoduje utworzenie pliku JAR o nazwie AV-0.1.jar.

Czy istnieje sposób zmiany domyślnej nazwy pliku JAR w ramach wdrożenia, aby nie łączyć tych atrybutów lub wyraźnie określić ostateczną nazwę wdrożonego pliku jar?

+0

Możliwy duplikat [to] (http : //stackoverflow.com/questions/4238944/controlling-maven-final-name-of-jar-artifact) question. – dmahapatro

Odpowiedz

0

Prosta odpowiedź na to: Nie

Problem związany z nim jest, jeśli chcesz zmienić schemat nazewnictwa to nie będzie możliwe, aby znaleźć artefakty w repozytorium. To jest powód posiadania stałego schematu nazewnictwa.

3

Complex Odpowiedź na to: Tak

To jest trochę trudne i trzeba być ostrożnym, ponieważ nie pom się ponownie napisane. Tak więc tylko maven remote reository (artifactory lub nexus) umieści go w poprawnej strukturze folderów.

Jeśli zastąpić cel Deploy-pliku w celu Maven wdrażać można nadpisać parametry: http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

Jednym z przykładów, który zawsze będzie zakładać wersję 4.5.1 na nexus będzie wyglądać następująco:

 <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <phase>deploy</phase> 
        <configuration> 
         <repositoryId>nexus-site</repositoryId> 
         <url>http://nexus.some.where/nexus-2/content/repositories/releases</url> 
         <file>${build.directory}/${project.build.finalName}.${project.packaging}</file> 
         <generatePom>false</generatePom> 
         <pomFile>pom.xml</pomFile> 
         <version>4.5.1</version> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

(a zanim ktoś zapyta, jednym z powodów, aby coś takiego zrobić, jest tworzenie bardziej przyjaznych CI.) W CI wszystko jest po prostu numerem kompilacji, tak naprawdę nie ma "wersji kompilacji", każde sprawdzenie daje produkcje Tak więc, zastępując 4.5.1 przez ${BUILD_NUMBER}, pozostawi w tobie wiele wydań R artefakt przechowywania ...)

+0

Dzięki! Szukałem tego od jakiegoś czasu! Jedynym problemem, jaki mi pozostał, jest to, że używam 'maven-shade-plugin'. Teraz wdrażam dwa pliki do mojego systemu docelowego: stary z sygnaturą czasową i nowym, który pochodzi z twojego rozwiązania^^ – displayname

0

mvn wdrożyć: wdrożenie plik -DartifactId = AAA -Dversion = VVV -Dpackaging = słoik

Polecenie powyżej umieści plik w poniższej konstrukcji.

AAA 
-VVV 
--AAA_VVV.jar 

Jeśli chcesz tylko dokonać nazwę tworzonego pliku innego między kolejnymi popycha do artifactory, można użyć -Dpackaging parametr. to znaczy. Ustaw wartość bieżącego datownika

mvn deploy: wdrożyć plik -DartifactId = AAA -Dversion = VVV -Dpackaging = 2017_01_31_01_37.jar

AAA 
-VVV 
--AAA_VVV.jar 
--AAA_VVV2017_01_31_01_37.jar 
Powiązane problemy