2017-02-22 8 views
0

Я пытаюсь создать файл проекта проекта Maven. Я знаю о репозитории Maven и конфигурации файла pom.xml. Но мой запрос немного отличается от этого.Как создать контейнер проекта Maven с зависимостями, которые используются путем построения?

Я создал репозиторий Maven. Я включил соответствующие файлы jar зависимости, загрузив их, а затем заданный в пути сборки проекта (поскольку я использую Eclipse Neon).

Теперь, когда я run as --> Maven install, он создает файл jar. Но эта банка единственного проекта, а не зависимостей, которые я включил.

Я проверил и получил предложения о том, что мне нужно включить их в maven pom.xml, но я точно не знаю, какая банка используется в моей программе.

Так что я хотел бы знать, как я могу автоматически создать проект Maven для обнаружения зависимостей и записать их в файл pom.xml без моего вмешательства, если это возможно.

Пожалуйста, дайте мне знать, как это возможно?

+0

Почему я получил negetive -1 на мой вопрос? –

+0

Вы нашли решение? – freedev

+0

@freedev Да, он работоспособен. Благодарю вас. –

ответ

1

Я решил эту проблему, используя maven-dependency-plugin.

Этот плагин создает копию всех зависимостей, необходимых вашему файлу jar, в каталоге ${project.build.directory}/lib.

Когда вам нужно, чтобы начать свой файл банку, вы должны указать путь к классам -cp /path/to/your-jar-file.jar:/path/to/your/lib/*

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.8</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>package</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/lib</outputDirectory> 
         <overWriteReleases>false</overWriteReleases> 
         <overWriteSnapshots>false</overWriteSnapshots> 
         <overWriteIfNewer>true</overWriteIfNewer> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

Можете ли вы удалить все ненужные комментарии и перейти в чат, чтобы объяснить, что не так? Я использовал его много раз. С другой стороны, у меня есть еще один ответ на ваш вопрос. – freedev

+0

Давайте продолжим обсуждение в чате (http://chat.stackoverflow.com/rooms/136513/discussion-between-jaffer-wilson-and-freedev). –

0

Другим решением может быть непосредственно использовать Maven для запуска приложения, на этом пути мавена прозрачно добавить все зависимости настроены. Вам нужно только позаботиться о том, чтобы выполнить цель Maven package.

# create your jar file with maven 
mvn clean package 

 # execute your class where is main 
mvn exec:java -Dexec.mainClass="your.package.App" -Dexec.args="your app params" 

Вы можете даже обернуть эту строку в скрипт run.sh:

#!/bin/bash 

PARAMS="$*" 

if [ "A$PARAMS" == "A" ] 
then 
    PARAMS="--help" 
fi 

mvn exec:java -Dexec.mainClass="your.package.App" -Dexec.args="$PARAMS" 
Смежные вопросы