Description ResourcePathLocation Type Path must include project and resource name: /
生活随笔
收集整理的這篇文章主要介紹了
Description ResourcePathLocation Type Path must include project and resource name: /
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- eclipse 2019-12 (4.14.0)
- jdk 1.8
- Apache Maven 3.6.1
- spring boot 2.2.13.RELEASE
錯誤
Description Resource Path Location Type Path must include project and resource name: / (org.apache.maven.plugins:maven-jar-plugin:2.4:jar:default-jar:package)java.lang.IllegalArgumentException: Path must include project and resource name: /at org.eclipse.core.runtime.Assert.isLegal(Assert.java:66)at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2122)at org.eclipse.core.internal.resources.Container.getFolder(Container.java:205)at org.sonatype.m2e.mavenarchiver.internal.AbstractMavenArchiverConfigurator.mavenProjectChanged(AbstractMavenArchiverConfigurator.java:220)at org.sonatype.m2e.mavenarchiver.internal.AbstractMavenArchiverConfigurator$1.build(AbstractMavenArchiverConfigurator.java:165)at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:135)at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:169)at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:114)at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:114)at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:105)at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153)at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101)at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:88)at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:197)at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)pom.xml /ymsso-admin line 14 Maven Build Problem原因
- 這個錯誤只在eclipse中會報出。如果我不用eclipse,而只用mvn命令行編譯項目時沒有錯誤。
- 這個錯誤的大意是:打包成jar時,發現你設置的輸出目錄未在本項目內(出圈了!)。
- 其實這個錯誤是eclipse的插件m2e引起的,所以只用mvn命令行時,沒這個錯誤。
我的項目時maven的多模塊項目,如下:
myapp ├─module1 ├─module2 └─admin└─.pom.xml我希望打包時,在項目的根目錄生成jar,因此改造admin/pom.xml如下:
<project>...<properties><main.basedir>${basedir}/..</main.basedir>...</properties><build><directory>${main.basedir}/target/admin</directory>...</build>... </project>解決辦法1:在maven-jar-plugin插件中配置outputDirectory
將admin/pom.xml改造為:
<project>...<properties><main.basedir>${basedir}/..</main.basedir>...</properties><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><outputDirectory>${main.basedir}/target/admin</outputDirectory></configuration></plugin>...</plugins>...<build> </project>- 如果 maven-jar-plugin 輸出的就是你想要的,那這個方式還是不錯的。
- 如果是 spring boot 項目,maven-jar-plugin 輸出的不含springboot,不是最終結果,不要用這個方式。
解決辦法2:在spring-boot-maven-plugin插件中配置outputDirectory
將admin/pom.xml改造為:
<project>...<properties><main.basedir>${basedir}/..</main.basedir>...</properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.1.RELEASE</version><configuration><fork>true</fork> <!-- 如果沒有該配置,devtools不會生效 --></configuration><executions><execution><goals><goal>repackage</goal></goals><configuration><outputDirectory>${main.basedir}/target/admin</outputDirectory></configuration></execution></executions></plugin>...</plugins>...<build> </project>- 嗯,這個就是適合springboot的解決辦法
參考
https://stackoverflow.com/questions/25206689/maven-with-eclipse-error-path-must-include-project-and-resource-name/27562184#27562184
總結
以上是生活随笔為你收集整理的Description ResourcePathLocation Type Path must include project and resource name: /的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机驱动安装图文教程
- 下一篇: 修改服务器ssh登录超时时间