Maven: компилирование со всеми зависимостями в одном Jar - PullRequest
0 голосов
/ 05 января 2011

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

Но цель компиляции maven возвращает ошибку компиляции.: banghead:

Все файлы jar, необходимые для компиляции, находятся в одном файле jar, который добавляется в зависимости .............................

Пожалуйста, помогите мне!

мой pom:

<project>
  <!-- ... -->
  <dependencies>
    <dependency>
      <groupId>eagle</groupId>
      <artifactId>zkui</artifactId>
      <version>360LTS</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>./src/main/java</sourceDirectory>
    <outputDirectory>./target/classes</outputDirectory>
    <finalName>${project.groupId}-${project.artifactId}</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

ошибка:

пакет org.zkoss.zk.ui не существует Этот пакет org.zkoss.zk.ui находится в файле jar zkex.jar, который находится в зависимости jar eagle: zkui: файл jar 360LTS

Пожалуйста, помогите мне !!!!: jumpingjoy:

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 28 июня 2011

Вы можете использовать элемент для этого:

<dependencies>
    <dependency>
      <groupId>groep.does.not.matter</groupId>
      <artifactId>neither-does-artifactId</artifactId>
      <version>and.nor-does-version</version>
      <type>jar</type>
      <scope>system</scope>
      <systemPath>${project.baseDir}/lib/jarname.jar</systemPath>
    </dependency>
  </dependencies>

, где jar-файл, на который нужно сослаться (и он есть в вашем classpath) - это lib / jarname.jar, а каталог lib находится в корневомвашего проекта.

0 голосов
/ 28 июня 2011

Я полагаю, что вы на самом деле не используете правильные зависимости.ZK на самом деле имеет репозитории Maven, как описано здесь .

Вам необходимо проверить, какие зависимости вам нужны.Например, для zkex вам понадобится что-то вроде:

    <dependency>
        <groupId>org.zkoss.zk</groupId>
        <artifactId>zkex</artifactId>
        <version>${zk.version}</version>
    </dependency>

Вам также нужно добавить репозитории ZK Maven:

    <repositories>
        <repository>
            <id>zk repository</id>
            <url>http://mavensync.zkoss.org/maven2</url>
        </repository>
        <!-- If Using ZK EE or ZK PE Respository (not evaluation version), you need to add login info into ~/.m2/settings.xml -->
        <repository>
            <id>ZK PE Evaluation</id>
            <url>http://mavensync.zkoss.org/zk/pe-eval</url>
        </repository>
        <repository>
            <id>ZK EE Evaluation</id> 
            <url>http://mavensync.zkoss.org/zk/ee-eval</url>
        </repository>
    </repositories>

Удачи!: -)

0 голосов
/ 05 января 2011

Ну, я думаю, вы могли бы

  • использовать dependency:unpack, чтобы распаковать банки в target / lib или около того (до компиляции)
  • деактивировать compiler:compile, исключив все

    <excludes>
        <exclude>**/*.java</exclude>
    </exclude>
    
  • использовать antrun:run с муравьем javacЗадача для компиляции исходников, что-то вроде этого (привязать выполнение к фазе compile):

    <target>
        <javac srcdir="${project.build.sourceDirectory}"
               destdir="${project.build.outputDirectory}">
            <classpath>
                <pathelement path="${maven.compile.classpath}"/>
                <fileset dir="${project.build.directory}/lib">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </javac> 
    </target>
    

Однако, пока это поможет вам Компилировать вашприложение, это не поможет вам запустить или развернуть ваше приложение.

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