我是Java新手,所以可能错过了这里显而易见的东西。
我想从项目"外部"的文件夹中取出.java
文件(不是jars
)。我同时开发主项目和共享java文件。稍后我想在另一个项目中使用共享文件(很可能也是.java
文件,因为另一个项目将与第一个项目相关-即更多的并发开发。-)
我不知道如何使用主项目中SharedJava文件夹中的.java
文件。我已经尝试了SO等中的建议,但没有效果。
我已经建立了一个新项目,文件夹如下:
我已经在两个文件夹中创建了VSCode Java项目,尽管对于SharedJava
我没有包含任何构建工具。
这两个项目都出现在VSCode的JAVA PROJECTS节中。
展开后,如下所示,作为初始测试,突出显示的java文件是我想要导入到MainProject中的文件。
The SharedClass.java file:
package messaging;
public class SharedClass {
public void echoMessage(String msg) {
System.out.println("SharedClass.echoMessage() said: " + msg);
}
}
and what I am trying to do for my test is in this MainProject App.java file:
package com.flowt;
public class App {
public static void main( String[] args ) {
System.out.println( "Hello World!" );
// How to import SharedClass ?
SharedClass sharedClass = new SharedClass();
sharedClass.echoMessage("Hello XYZ");
}
}
我的MainProject.code-workspace
文件是这样的:
{
"folders": [
{
"path": "."
},
{
"path": "../SharedJava/flowtshared"
}
],
"settings": {
"java.project.sourcePaths": [
"src",
"../SharedJava/flowtshared/src"
]
}
}
那么,我需要做些什么才能将SharedClass.java
导入到MainProject中呢?(不创建符号链接!)
谢谢,默里
1条答案
按热度按时间kx7yvsdv1#
好的。修好了。
首先:我发现理解Maven的最佳解释(其中包括一个多模块项目的好例子)如下:https://books.sonatype.com/mvnex-book/reference/index.html
它相当旧,示例代码不能工作,因为它引用了不再存在的API。但是,解释非常清楚,示例代码文件仍然作为参考存在。
也许如果你知道更多最新的参考资料是一样好,你可以把下面的评论。
对于其他Java新手,我提供以下内容...
最终的结果是部分使用VSCode功能和部分手动定制完成的。如果我更好地理解VSCode Java扩展,也许我可以使用扩展完成这一切。
简短的版本如下所示,产生的文件和文件夹等显示进一步下降。
1.为
parent
创建一个新的Java项目,使用Maven快速入门原型,对于这个示例,我使用了所有默认值,除了groupId等。1.保留
pom.xml
文件并删除其余文件。1.按照以下示例将
<packaging>pom</packaging>
添加到pom.xml
文件。1.在
parent
项目中,使用与父项目相同的groupId创建shared
项目。当系统询问时,将项目添加到工作区。如果愿意,删除App.java
文件。1.在
shared
pom.xml中,我删除了<groupId>
部分,注意Maven包含了<parent>
块。1.在
parent
项目中,使用与父项目相同的groupId创建mainapp
项目,当系统询问时,将该项目添加到工作区。1.在
mainapp
pom.xml中,我删除了<groupId>
部分,注意Maven包含了<parent>
块。1.在
mainapp
pom.xml中,为shared
项目添加一个<dependency>
块,如下例所示。1.如果您返回到
parent
项目的pom.xml
,并滚动到末尾,您应该看到VSCode添加了一个如下所示的块:您可以将其移到顶部以使其更明显。
1.将您的测试类(例如PrintMessage.java)添加到您的
shared
项目中,放在它自己的文件夹中(例如messaging)。1.更新您的
mainapp
App.java
文件,以按照示例包含您的共享类。1.从父项目根目录运行
mvn clean install
,这会将jar添加到本地Maven存储库(本地存储库的位置如终端输出所示)。这时我发现我需要关闭并重新打开VSCode窗口,这样Java项目部分就会自动排序,3个项目就会出现在那里。如果我不这样做,就会出现“类路径”错误。
然后,我可以打开
App.java
文件并使用VSCode对Run java
进行测试。我注意到如果我编辑
PrintMessage.java
文件(例如改变输出消息),我可以运行App.java
文件而不需要重新编译,改变就会显示出来。酷。====代码示例====
(为了清楚起见,我删除了
src/test
和target
文件夹)parent
pom.xml文件shared
pom.xml文件mainapp
pom.xml文件PrintMessage.java
App.java
我希望这能有所帮助,任何关于构建应用程序的Maven建议都是最受欢迎的。
祝你好运,默里