Выполнить проект Java / Maven без затмения - PullRequest
0 голосов
/ 30 мая 2018

Я создал проект Maven.Есть ли способ выполнить программу без использования Eclipse?Я пытался запустить javac main.java, но я получаю ошибки такого типа package org.json does not exist

Чего мне не хватает?

Структура проекта примерно такая:

program
   src
     com
        main.java
        otherClass.java
   pom.xml
   .classpath
   .project

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

В моем предложении:

# 1 Создать проект maven

# 2 Создать банку FAT, используя плагин сборки (см. Ниже)

# 3 Добавить плагин exec (см.pom ниже)

# 4 Создать главный класс (см. код MainApp.java ниже)

# 5 Перейти в каталог проекта и запустить команду maven

mvn clean install -DskipTests

Это сгенерирует жирное имя jar sample-jar-with-dependencies.jar

# 6 Выполнить следующую команду maven для запуска класса MainApp

mvn exec: exec

# 7 Готово!

Надеюсь, это будет полезно.

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>com.test</groupId>
<artifactId>java-sample-project</artifactId>
<version>0.0.1-SNAPSHOT</version>

<properties>
    <jdk.version>1.8</jdk.version>
    <junit.version>4.11</junit.version>
    <fat-jar-name>target/sample-jar-with-dependencies.jar</fat-jar-name>
    <main-class-name>com.java.example.MainApp</main-class-name>
</properties>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <finalName>sample</finalName>
    <plugins>
        <!-- Set a compiler level -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>

        <!-- Added JUnit support -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
        </plugin>

        <!-- Maven Exec Plugin to run main class -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <id>sample-id-1</id>
                    <!-- <phase>prepare-package</phase> -->
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable>java</executable>
                <mainClass>com.java.example.MainApp</mainClass>
                <arguments>
                    <argument>-classpath</argument>
                    <argument>${fat-jar-name}</argument>
                    <argument>${main-class-name}</argument>
                </arguments>
            </configuration>
        </plugin>

        <!-- Maven Assembly Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <!-- get all project dependencies -->
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <!-- MainClass in mainfest make a executable jar -->
                <archive>
                    <manifest>
                        <mainClass>com.java.example.MainApp</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <!-- bind to the packaging phase -->
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

MainApp.java

 package com.java.example;

 public class MainApp {
 public static void main(String[] args) {
    System.out.println("Hello World...");
}
}

Вывод команды mvn exec: exec

    $ mvn exec:exec
    Picked up _JAVA_OPTIONS: -Xmx512M
    [INFO] Scanning for projects...
    [INFO]
    [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building java-sample-project 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- exec-maven-plugin:1.2.1:exec (default-cli) @ java-sample-project ---

    Hello World...
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 1.841 s
    [INFO] Finished at: 2018-06-06T21:29:32+05:30
    [INFO] Final Memory: 6M/27M
    [INFO] ------------------------------------------------------------------------
0 голосов
/ 30 мая 2018

Вы можете использовать Apache Maven Jar Plugin .Это делается для создания JAR вашего проекта и упрощения его запуска из командной строки

Укажите основной класс:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>com.main</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
</plugins>

При запуске mvn clean install будет создан JARили ваш проект и просто запустите его с java -jar youProjectName.jar

Проверьте эту ссылку

Надеюсь, это поможет!

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