Храните java 5 и java 6 JAR в Maven Repo - PullRequest
1 голос
/ 27 июля 2010

Я думаю, что мне нужно хранить версии Java 5 и Java 6 одного и того же jar в нашем внутреннем репозитории Maven (Nexus).Как?

Я думал, что смогу указать классификатор в конфигурации плагина развертывания ...

<build>
    <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <classifier>${jvmClassifier}</classifier>
            </configuration>
        </plugin>

, но он игнорируется!

Ответы [ 3 ]

1 голос
/ 27 июля 2010

Вы можете получить разные сборки для разных версий платформы Java, используя разные профили Maven, которые определяют версии компилятора для плагина компилятора maven (1.5 в одной и 1.6 в другой). Подсказка приведена в книге Sonatype под названием " Maven - полный справочник ".

Чтобы отличить JAR друг от друга, другой ответ дает действительно хороший совет. Если вы хотите добиться того же, вам нужно настроить задачу jar: jar в каждом из профилей, чтобы создать разные jar-файлы, которые затем можно будет развернуть в локальном репозитории.

1 голос
/ 28 июля 2010

Это игнорируется, потому что classifier НЕ является параметром deploy:deploy, который является целью, связанной с фазой deploy (хотя это параметр deploy:deploy-file).

Поместите классификатор в конфигурацию плагина jar / war / ear.Вот pom.xml, имитирующий желаемое поведение (вам, вероятно, следует использовать профили):

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <properties>
    <jvmClassifier>jdk16</jvmClassifier>
  </properties>
  <groupId>com.stackoverflow.q3341837</groupId>
  <artifactId>Q3341837</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Q3341837</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
          <classifier>${jvmClassifier}</classifier>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <altDeploymentRepository>mine::default::file://${basedir}/target/my-repo</altDeploymentRepository>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Вот что я получаю после запуска mvn deploy:

$ mvn clean deploy
...
$ tree target/my-repo/
target/my-repo/
└── com
    └── stackoverflow
        └── q3341837
            └── Q3341837
                ├── 1.0-SNAPSHOT
                │   ├── maven-metadata.xml
                │   ├── maven-metadata.xml.md5
                │   ├── maven-metadata.xml.sha1
                │   ├── Q3341837-1.0-20100727.222050-1.pom
                │   ├── Q3341837-1.0-20100727.222050-1.pom.md5
                │   ├── Q3341837-1.0-20100727.222050-1.pom.sha1
                │   ├── Q3341837-1.0-SNAPSHOT-jdk16.jar
                │   ├── Q3341837-1.0-SNAPSHOT-jdk16.jar.md5
                │   └── Q3341837-1.0-SNAPSHOT-jdk16.jar.sha1
                ├── maven-metadata.xml
                ├── maven-metadata.xml.md5
                └── maven-metadata.xml.sha1
1 голос
/ 27 июля 2010

Вам следует использовать атрибут версии, т. Е. Если у вас есть jar-файлы Java 5 и 6 версии 2.1, то «полной» версией будут 2.1-jdk15 и 2.1-jdk16. UISpec4J использует этот подход - uispec4j-2.3-jdk16.jar и uispec4j-2.3-jdk15.jar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...