java - 找不到主类(Maven Mojo 插件错误)

标签 java maven pom.xml

Maven(在 NetBeans 上运行 JPA hibernate)似乎无法找到主类,尽管它引用了它的路径。我收到的错误如下所示:

Error: Could not find or load main class app.Main
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.229s
Finished at: Wed Sep 18 15:25:26 EEST 2019
Final Memory: 5M/123M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project 
jpa_test: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

persistence.xml 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="_one2manyJPA" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <class>model.Student</class>
        <class>model.Course</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa_base?zeroDateTimeBehavior=CONVERT_TO_NULL&amp;useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true&amp;useSSL=false"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.password" value="rootpass"/>

            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.show_sql" value="true" />
            <!--<property name="hibernate.hbm2ddl.auto" value="create" />-->
        </properties>
    </persistence-unit>
</persistence>

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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.mycompany</groupId>
    <artifactId>jpa_test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.4.Final</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>

    </dependencies>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>


    </properties>



</project>

主要内容:

    package app;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import model.Course;

/**
 *
 * @author mousa
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("_one2manyJPA");
        EntityManager em = emf.createEntityManager();

        Course c = em.find(Course.class, 1); //retrieve

        Course c1 = new Course();
        c1.setTitle("Algebra");
        em.getTransaction().begin();
        em.persist(c1);
        em.getTransaction().commit();




        System.out.println(c.getTitle());
    }

}

我在 xml 中找不到任何可能导致此问题的错误。这可能是我的 Maven 安装的内部问题吗?

更新:nbactions.xml 在目标标签内包含 mojo 插件:

<?xml version="1.0" encoding="UTF-8"?>
<actions>
        <action>
            <actionName>run</actionName>
            <packagings>
                <packaging>jar</packaging>
            </packagings>
            <goals>
                <goal>process-classes</goal>
                <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
            </goals>
            <properties>
                <exec.args>-classpath %classpath app.Main</exec.args>
                <exec.executable>java</exec.executable>
            </properties>
        </action>
        <action>
            <actionName>debug</actionName>
            <packagings>
                <packaging>jar</packaging>
            </packagings>
            <goals>
                <goal>process-classes</goal>
                <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
            </goals>
            <properties>
                <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath app.Main</exec.args>
                <exec.executable>java</exec.executable>
                <jpda.listen>true</jpda.listen>
            </properties>
        </action>
        <action>
            <actionName>profile</actionName>
            <packagings>
                <packaging>jar</packaging>
            </packagings>
            <goals>
                <goal>process-classes</goal>
                <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
            </goals>
            <properties>
                <exec.args>-classpath %classpath app.Main</exec.args>
                <exec.executable>java</exec.executable>
            </properties>
        </action>
    </actions>

这个文件有问题吗?

最佳答案

尝试将其添加到您的 pom 中,然后运行 mvn clean install(如果您运行的是 java 7,请将 1.8 更改为 1.7)

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

关于java - 找不到主类(Maven Mojo 插件错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57993256/

相关文章:

java - 如何在 Java 中验证表未被修改?

java - CXF:如何使用wsdl2java生成@Logging注释?

java - 使用依赖项中的 XSD

java - 导出仅包含未提供的依赖项的 jar Eclipse Maven 项目

java - 为什么将 ActionListener 添加到 JButton 时,这 2 个类似的 for 循环会产生不同的结果?

java - IntelliJ Idea 生成源

java - 将 GWT 与 Spring 集成

maven-2 - Maven 校验和 pom 设置?

java - 使用 maven,如何将 war 配置到 ear 文件中

java - 如何可靠地检测文件类型?