首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java从命令行编译,而不是从Maven编译

Java从命令行编译,而不是从Maven编译
EN

Stack Overflow用户
提问于 2012-01-07 05:41:58
回答 2查看 655关注 0票数 3

我将我的系统设置为从命令行编译jee6代码(没有集成开发环境)。我最近尝试编译一些使用javax.enterprise.context.RequestedScope的代码。代码在命令提示符下编译得很好,但是当我尝试使用Maven构建应用程序时,我一直收到javax.enterprise.context包未找到的错误。

怎么回事?我以为Maven使用的是我正在使用的同一个javac。为什么javac可以找到包,而Maven不能?我需要为java包添加依赖项吗?

Or...is有没有办法告诉Maven在构建时使用当前的类文件,或者Maven在构建时必须编译吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-07 06:22:48

尝试将Java EE 6JAR添加到Maven依赖项中:

代码语言:javascript
复制
<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/maven-v4_0_0.xsd">
    . . .
    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

这会将Java EE类添加到编译时类路径中。

票数 3
EN

Stack Overflow用户

发布于 2012-01-07 06:26:31

要使用Maven编译代码,您需要告诉它在哪里可以找到所需的组件。

看起来你需要将这个添加到你的依赖项中:

代码语言:javascript
复制
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-endorsed-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

请注意<scope>元素。它告诉Maven不要将此依赖项与您的工件捆绑在一起,因为在运行时它将由应用程序容器提供。

关于它从命令行编译的原因。您可能在命令行-cp选项或全局CLASSPATH变量中具有所需的jar文件。

Maven在设计上并不关注全局CLASSPATH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8764890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档