maven javadoc非法包名错误
当我运行mvnjavadoc时,我得到以下错误:javadoc [错误]退出代码:1-javadoc:ERROR-非法包名称: “普林斯顿教育学院cs.1-基础课程1-1-基本课程模式” 原因我很清楚,但我不知道如何解决它 这是我在文件夹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
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>