Мои требованияКак построить POM файл Maven как для Android и Java высвобождает
У меня есть библиотека Java, ulitities. Я хочу сделать 2 файла jar. Один для Android, а другой для Java.
Для баннера Android я хочу исключить пакет JDBC.
Я хочу загрузить оба файла jar & их javadoc, javasources в удаленный репозиторий Maven.
так что я могу использовать библиотеку, как показано ниже
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>mylib</artifactId>
<version>1.0</version>
</dependency>
ИЛИ Android классификатором
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>mylib</artifactId>
<version>1.0</version>
<classifier>android</classifier>
</dependency>
Вот мой pom.xml
<project>
<!-- .... -->
<groupId>com.mycompany</groupId>
<artifactId>mylib</artifactId>
<version>1.0</version>
<name>mylib</name>
<packaging>jar</packaging>
<!-- .... -->
<build>
<plugins>
<!-- compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- .... -->
</plugin>
<!-- jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<!-- .... -->
</plugin>
<!-- source -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<!-- .... -->
</plugin>
<!-- javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- .... -->
</plugin>
<!-- nexus-staging-maven -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<!-- .... -->
</plugin>
<!-- maven-gpg -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<!-- .... -->
</plugin>
</plugins>
</build>
<profiles>
<!-- All files - Java -->
<profile>
<id>java</id>
<activation>
<property>
<name>!android</name>
</property>
</activation>
</profile>
<!-- Android - Excluding JDBC, JPA packages -->
<profile>
<id>android</id>
<activation>
<property>
<name>android</name>
</property>
</activation>
<build>
<plugins>
<!-- Exclude some packages -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/jdbc/**</exclude>
</excludes>
</configuration>
</plugin>
<!-- Exclude some packages -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classifier>android</classifier>
<excludes>
<exclude>**/jdbc/**</exclude>
</excludes>
</configuration>
</plugin>
<!-- Exclude some packages -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/jdbc/**</exclude>
</excludes>
</configuration>
</plugin>
<!-- Exclude some packages -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<sourcepath>${project.basedir}/src/main/java</sourcepath>
<sourceFileExcludes>
<sourceFileExclude>**/jdbc/**</sourceFileExclude>
</sourceFileExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<!-- .... -->
</dependencies>
</project>
Maven CLI
Run МВН чистый развернуть для развертывания Java профиль
Успешно. Maven развернуть следующие файлы в удаленном хранилище:
- MyLib-1.0.jar
- MyLib-1.0.pom
- MyLib-1,0-javadoc.jar
- MyLib-1,0-sources.jar
- И все их знаковые файлы
Run МВН чистый Deploy -Dandroid для профиля развертывания Android
Следующие файлы генерируются:
- MyLib-1,0-android.jar // добавить КЛАССИФИКАТОРА
- MyLib-1.0.pom
- MyLib-1,0-javadoc.jar
- mylib- 1,0-sources.jar
- И все их знаковые файлы
я получил ошибку
[ERROR] Repository "mycompany-1082" failures
[ERROR] Rule "sources-staging" failures
[ERROR] * Missing: no main jar artifact found in folder '/com/mycompany/mylib/1.0'
[ERROR] Rule "javadoc-staging" failures
[ERROR] * Missing: no main jar artifact found in folder '/com/mycompany/mylib/1.0'
Вопрос: почему происходит эта ошибка?
Спасибо A_Di-Matteo. Я проверю его в следующий понедельник и дам вам знать результат. Я проголосовал за это. – Loc
Не работает. Такая же ошибка. Благодаря! – Loc
@Loc ли источники и javadoc jar генерируются с использованием разных классификаторов? –