maven javadoc非法包名错误

maven javadoc非法包名错误,java,maven,javadoc,Java,Maven,Javadoc,当我运行mvnjavadoc时,我得到以下错误:javadoc [错误]退出代码:1-javadoc:ERROR-非法包名称: “普林斯顿教育学院cs.1-基础课程1-1-基本课程模式” 原因我很清楚,但我不知道如何解决它 这是我在文件夹src/main/java/edu/princeton/cs/中的src文件结构 ├── 1-Fundamentals │ ├── 1-1-BasicProgModel │ ├── 1-2-DataAbstraction │ ├── 1-3-Bags

当我运行mvnjavadoc时,我得到以下错误:javadoc

[错误]退出代码:1-javadoc:ERROR-非法包名称: “普林斯顿教育学院cs.1-基础课程1-1-基本课程模式”

原因我很清楚,但我不知道如何解决它

这是我在文件夹
src/main/java/edu/princeton/cs/
中的src文件结构

├── 1-Fundamentals
│   ├── 1-1-BasicProgModel
│   ├── 1-2-DataAbstraction
│   ├── 1-3-BagsQueuesStacks
│   ├── 1-4-AnalysisOfAlgorithms
│   └── 1-5-UnionFind
├── 2-Sorting
│   ├── 2-1-ElementarySorts
│   ├── 2-2-Mergesort
在每个目录中,java代码都包含
包edu.princeton.cs.algs4

这意味着文件夹名称不是包名称。 但是,javadoc错误地认为文件夹名就是包名


我怎样才能让maven知道没有像edu.princeton.cs.1-Fundamentals.1-1-BasicProgModel这样的软件包,您正试图违背maven的惯例使用它。默认情况下,除非明确说明,否则项目的源根目录位于
src/main/java
下。这意味着下面的任何目录都将被视为包名的一部分,因此必须与.java源文件中声明的包名相匹配

现在,您可以重写约定,并告诉Maven考虑另一个目录源根,以便JavaC或JavaDoc按照预期工作:

::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>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <!--Overrides the default:-->
        <!--<sourceDirectory>src/main/java</sourceDirectory>-->
        <sourceDirectory>./path/relative/to/pom.xml/</sourceDirectory>
    </build>
</project>
并告诉maven源根在哪里:

<?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>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals><goal>add-source</goal></goals>
                        <configuration>
                            <sources>
                                <source>1-Fundamentals/1-1-BasicProgModel/src</source>
                                <source>1-Fundamentals/1-2-DataAbstraction/src</source>
                                <source>1-Fundamentals/1-3-BagsQueuesStacks/src</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
例子
例子
1.0-快照
org.codehaus.mojo
构建助手maven插件
生成源
添加源
1-基本原理/1-1-基本过程模型/src
1-Fundamentals/1-2-DataAbstraction/src
1-基本面/1-3-轧棍/src

你为什么这样组织你的项目?我想我从来没有见过目录中的类不是包的一部分。Java中的目录布局必须反映包名。@javajava原因是如果我使用
package edu.princeton.cs.1-BasicProgModel我将得到编译错误,
[error]编译错误:[INFO]------------------------------------------------------------------[error]algs4_exercise/src/main/java/edu/princeton/cs/1-basicprogrammes/Ex_1_1_test.java:[10,25];'预期的
<?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>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals><goal>add-source</goal></goals>
                        <configuration>
                            <sources>
                                <source>1-Fundamentals/1-1-BasicProgModel/src</source>
                                <source>1-Fundamentals/1-2-DataAbstraction/src</source>
                                <source>1-Fundamentals/1-3-BagsQueuesStacks/src</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>