В моем maven хотел бы создать jar с единственными скомпилированными классами из пакета org.lory.ejb.commons
, как вы можете видеть здесь:
потому что эти классы являются общими для основного проекта ejb и клиентского проекта.Я пытаюсь с плагином maven сборки, где мой дескриптор сборки:
<assembly>
<id>commons</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${basedir}/target/classes/</directory>
<outputDirectory>${basedir}/target/</outputDirectory>
<includes>
<include>org/lory/ejb/commons/**</include>
</includes>
</fileSet>
</fileSets>
И часть моего pom.xml
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
Кажется, чтоjar генерируется путем пакета внутри него не соблюдается (это не то же самое, что и содержащиеся в скомпилированных классах).Фактически, если я пытаюсь импортировать его в другой проект, Eclipse не позволяет мне использовать его:
Какой правильный способ использованияЭто?Спасибо
ОБНОВЛЕНИЕ Это мой общий проект
и 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>
<groupId>lory-ejb-commons</groupId>
<artifactId>lory-ejb-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>lory-ejb-commons</name>
<modules>
<module>lory-ejb</module>
</modules>
Этоpom.xml другого проекта (из которого был удален пакет commons)
<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>
<parent>
<groupId>lory-ejb-commons</groupId>
<artifactId>lory-ejb-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>lory-ejb</artifactId>
<name>lory-ejb</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>lory-ejb-commons</groupId>
<artifactId>lory-ejb-commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Но он все равно не работает.После очистки и установки обоих проектов у меня появляется эта ошибка
[ОШИБКА] Не удалось выполнить цель для проекта lory-ejb: Не удалось разрешить зависимости для проекта lory-ejb-commons: lory-ejb: jar: 0.0.1-SNAPSHOT: Не удалось найти артефакт lory-ejb-commons: lory-ejb-commons: jar: 0.0.1-SNAPSHOT -> [Помощь 1]
У ребенкапроект, который я даже не могу импортировать как пакет jons, он просто видит его как каталог, и даже если я могу импортировать классы в исходном коде, компилятор java по-прежнему говорит
import org.lory.ejb.commons.OperationOutcome не может быть решен