2015-01-07 7 views
0

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

Сначала я попытался SQLite 3.8.7 от:

mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.8.7

я могу скомпилировать хорошо, но когда я пытаюсь для выполнения Maven не находит SQLite файл банку, так что я пытаюсь использовать:

МВН установки: установка-файл

но это тоже не сработало, поэтому я только использовал -cp и исправил.

Во-вторых, я стараюсь использовать JFreeChart от:

http://mvnrepository.com/artifact/jfree/jfreechart/1.0.13

Я же шаги для JFreeChart, но на этот раз он дает me NoClassDefFoundError.

Оба из них работает, когда я компилирую вручную но с maven это не так. Что мне не хватает? Если я всегда добавляю вручную, как sqlite, зачем использовать maven?

Примечания: компилировать как:

МВН компилировать

и я упаковка как:

МВН пакет

и, наконец, я стараюсь выполнить как:

Java -cp мишень/porject.jar org.path.App

Edit:

Это для JFreeChart приложений (pom.xml) добавить теги зависимостей от mvnrepository. ком

<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>org.project</groupId> 
    <artifactId>ChartTest</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>ChartTest</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>jfree</groupId> 
     <artifactId>jfreechart</artifactId> 
     <version>1.0.13</version> 
    </dependency> 
    </dependencies> 
</project> 

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

+1

Как выглядит ваш pom.xml-файл? – Stefan

+0

Я отредактировал вопрос по вашему вопросу –

+0

Возможный дубликат [Как создать исполняемый банку с зависимостями с помощью Maven?] (Http://stackoverflow.com/questions/574594/how-can-i-create-an- исполняемый-jar-with-dependencies-using-maven) – Joe

ответ

1

Ваша проблема в том, что вы не включаете свои зависимости в свою целевую банку.

Добавьте это к своей пом.XML:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.1</version> 
      <configuration> 

       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 

      </configuration> 
      <executions> 
       <execution> 
        <id>make-assembly</id> <!-- this is used for inheritance merges --> 
        <phase>package</phase> <!-- append to the packaging phase. --> 
        <goals> 
         <goal>attached</goal> <!-- goals == mojos --> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Затем вы можете запустить приложение с помощью командной строки:

java -cp target/ChartTest-1.0-SNAPSHOT-jar-with-dependencies.jar org.path.App 
+0

Бог благословит вас, мой друг, он работал идеально, точно идеально!, Мне всегда нужно делать? или есть какая-то странная ситуация? –

+1

Ну, вам нужно добавить это только в том случае, если вы хотите включить зависимости в свою целевую банку. Это не всегда так. Скажем, у вас есть проект A в зависимости от Z.jar и проекта B в зависимости от того же Z.jar. Если у вас есть третий проект в зависимости от A и B, вы не хотите, чтобы A и B упаковывали Z.jar, только C. – StephaneM

0

D не используйте дефис в командах, используйте mvn package и mvn compile

+0

hypen? не могли бы вы объяснить бит litte с указанием, Как я уже упоминал в questinon, я использую mvn package и mnv compile? –

+0

вы разместили как mvn -compile и mvn -package. Это неправильно. –

+0

"-" <------ Hyphen. –

2

Все, что вам нужно, чтобы создать банку исполняемый файл с зависимостями и запустить его как автономное приложение:

<build> 
    <plugins> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <archive> 
      <manifest> 
      <mainClass>com.mypackage.main.Main</mainClass> 
      </manifest> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

, а затем запустить цель:

clean package assembly:single 
Смежные вопросы