Как развернуть исходный файл с помощью jar, используя deploy: deploy-file - PullRequest
10 голосов
/ 20 февраля 2012

У меня есть следующие плагины для создания -sources.jar и развертывания определенного именованного jar в хранилище.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <version>${project.version}-r${buildNumber}</version>
        <classifier>${env}</classifier>
        <packaging>jar</packaging>
        <file>${project.build.directory}/${project.build.finalName}.jar</file>
        <url>${artifactory.url}/libs-release-local</url>
        <repositoryId>artifactory.digiterre.com</repositoryId>
        <pomFile>${project.basedir}/pom.xml</pomFile>
    </configuration>
</plugin>

Я хочу развернуть *-sources.jar одновременно. Я попытался добавить вторую запись файла и даже второй плагин развертывания. Кажется, я развернул тот или иной файл.

Можно ли развернуть оба за один проход, используя deploy:deploy-file, или мне нужно будет настроить вторую командную городскую сборку только для развертывания источников?

Ответы [ 3 ]

7 голосов
/ 20 февраля 2012

Когда вы используете maven-source-plugin, сгенерированный jar автоматически присоединится к артефакту проекта (по умолчанию для этот параметр равен 'true') и если вы выполните deploy, он будет развернут вместе с ним , Увы, нет необходимости в отдельной настройке плагина развертывания.

К сожалению, вы не можете добавить классификатор (${env} в вашем случае) к исходным файлам jar. Вот почему я бы использовал следующую конфигурацию:

...
<artifactId>com.pie.mash.repo.mince-${env}</artifactId>
<version>1.18-r${buildNumber}</version>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.1.2</version>
      <executions>
        <execution>
          <goals>
            <goal>jar-no-fork</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Кроме того, я нашел этот вопрос о SO. Вы можете использовать предложенный там обходной путь.

2 голосов
/ 21 декабря 2016

Мы можем использовать deploy: deploy-file для загрузки нескольких JAR-файлов (источников, тестов, документов) вдоль основного артефакта JAR.Нам просто нужно предоставить дополнительную информацию для развертывания: вызов плагина deploy-file.Дополнения выделены жирным шрифтом в следующей команде:

mvn deploy: deploy-file -Dfile = helloWorld.jar -Durl = https://localhost/nexus/content/repositories/snapshots/ -DrepositoryId = снимок -Dfiles =helloWorld-6.4.1.3.SNAPSHOT-sources.jar, helloWorld-6.4.1.3.SNAPSHOT-tests.jar -Dtypes = jar, jar -Dclassifiers = sources, tests -DgroupId = com -DartifactId = helloWorld -Dversion = 6.4.1.3.SNAPSHOT -Dpackaging = jar -Dpomfile = pom.xml

Нам нужно указать список файлов, разделенных запятыми Нам нужно указатьтипы этих дополнительных файлов Нам нужно добавить информацию классификатора для этих дополнительных файлов

1 голос
/ 20 февраля 2012

mvn deploy:deploy-file развертывает только один артефакт. Вместо этого вы можете использовать mvn deploy (который вызывает mvn deploy:deploy) для развертывания артефакта, его pom вместе с прикрепленными артефактами (такими как source и javadoc). Обратитесь к обзору целей подключаемого модуля maven .

...