如何使用gradle指定对tomcat库的依赖性

  发布于 2023-02-09 10:53

关于我的知识水平的一些背景知识:我目前正在尝试学习如何使用gradle构建项目.到目前为止,我没有很多构建工具的经验(几乎没有).我确实理解了一般的想法并且之前已经看过ant和maven文件但是从未自己编写过.到目前为止,我只是使用其他人构建脚本或使用Eclipse配置我的构建.所以我可能在这里完全错误的轨道,如果是这样,请指出我正确的方向.另外,遗憾的是,手工制作罐子的经验并不多.

我有一个Eclipse项目,我想编译成一个jar.必需的库jar位于我的本地文件系统上.我设法让gradle使用这些

dependencies {
    compile fileTree(dir:'lib', include:'*.jar')
}

另外我有我的源文件src/main/java,只是apply plugin: 'java'在文件中使用build.gradle.gradle build正如我所知,试图建立项目似乎做对了.

但是,据我所知,该库应该用在运行在tomcat上的web项目中,并使用tomcat提供的一些库.我正在使用javax.servlet.http.HttpServletRequest.该项目在Eclipse中运行良好,但我在我的Eclipse构建路径中添加了tomcat库.当我签入Eclipse时,我可以看到它javax.servlet.http.HttpServletRequestservlet-api.jarTomcat库的一部分.

现在,当我构建项目时,我得到构建错误,因为java编译器找不到类,因为我没有servlet-api.jar在依赖项中指定.我想我可以以某种方式下载它(或者学习如何将它指定为外部依赖项以使gradle从某个存储库下载它)但我不确定这是否正确.

有没有办法告诉gradle使用Eclipse使用的相同库?或者其他一些告诉它所有tomcat jar的一般方法,就像我在Eclipse中简单地添加完整的Tomcat库一样?或者我真的需要另外一些这些罐子的副本,并且必须单独指定每一个?

另外,我是否需要将这些库jar添加到我的构建结果库jar中?据我所知,我需要添加任何依赖于生成的jar的jar.但话说回来,我已经读过一些地方,某些库是由tomcat自己提供的,所以它们必须是部署在它上面的任何战争的一部分.我很害怕,我被如何构建一个组合混淆罐子 -file在使用战争 -file要在部署tomcat的使用gradle这个,我不知道从哪个这些部分我的问题起源.我希望有人能够帮我解开思路并指出正确的方向,或者至少告诉我如何将Tomcat库中包含的jar添加到我的gradle依赖项中.

1 个回答
  • 使用Gradle,无论何时添加文件或目录作为依赖项,它们都不会被视为完整的工件(包含组,名称和版本),而是作为包含类的简单文件.这意味着Gradle不会对它们执行任何冲突解决方案,也不会提取传递依赖项.

    对你来说,刚开始,我建议只添加tomcat依赖.确保它与Eclipse中的版本相同.

    apply plugin: 'war'
    
    repositories {
       mavenCentral()
    }
    
    dependencies {
        providedCompile 'org.apache.tomcat:tomcat-catalina:7.0.47'
    }
    

    另外,将Eclipse Integration Gradle项目视为长期解决方案.

    2023-02-09 10:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有