惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
A
About on SuperTechFans
Vercel News
Vercel News
B
Blog
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
D
Docker
V
Visual Studio Blog
博客园 - 叶小钗
The Cloudflare Blog
Jina AI
Jina AI
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
D
DataBreaches.Net
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏

克洛洛日记

一年回本计划 | 克洛洛日记 股票期权的Theta | 克洛洛日记 股票期权的Gamma | 克洛洛日记 股票期权的Delta | 克洛洛日记 KDJ指标 | 克洛洛日记 布林线 | 克洛洛日记 MACD指标 | 克洛洛日记 RSI指标 | 克洛洛日记 时间协议 | 克洛洛日记 聊聊Spring的stereotype注解 | 克洛洛日记 免费申请 JetBrains 全产品 License | 克洛洛日记 Aloha 一个Hexo主题 | 克洛洛日记 泰国之旅 [三] | 克洛洛日记 泰国之旅 [二] | 克洛洛日记 泰国之旅 [一] | 克洛洛日记 Nginx使用SSL证书配置https | 克洛洛日记 i18next | 克洛洛日记 错误排查:非ROOT用户使用密钥进行ssh登录提示输入密码 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[三] | 克洛洛日记 使用EditorConfig | 克洛洛日记 JavaScript执行window.print()打印内容为空白 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[二] | 克洛洛日记 寓食记 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[一] | 克洛洛日记 书单 | 克洛洛日记 WebJars使用示例 | 克洛洛日记 WebJars介绍 | 克洛洛日记 数据分布式模型 | 克洛洛日记 Wicket的HelloWorld | 克洛洛日记 Java运行时内存结构 | 克洛洛日记
Maven打jar包内容出错 | 克洛洛日记
海拉鲁球果 <hyrul · 2016-03-29 · via 克洛洛日记

· maven / java / jar / wicket

今天在使用maven打包时,发现打的jar包有问题。

第1种情况-无class文件

打的jar包没有内容(准确地说是没有class),猜想应该是maven打包的时候没有compile java源文件到class,从网上找原因,原来maven默认是compile src/main/java 下的java文件,而我们目录结构中的源码目录是 src/,需要在pom.xml里指定源码位置。

在pom.xml文件的 build > resources 前加入 ${basedir}/src ,如下:

<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src/main/java</directory>
        <includes>
            <include>**</include>
        </includes>
        <excludes>
            <exclude>**/*.java</exclude>
        </excludes>
    </resource>
</resources>

打出的jar包内就有class了。

第2种情况-无资源文件

启动系统后,界面报错,提示找不到 html 资源文件。

由于使用的是Wicket,需要打入Component对应的html文件(这是Wicket的特点),界面提示找不到html文件,查找这个jar包的内容,发现没有html,再次回到 pom.xml 文件查看:

<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src/main/java</directory>
        <includes>
            <include>**</include>
        </includes>
        <excludes>
            <exclude>**/*.java</exclude>
        </excludes>
    </resource>
</resources>

如上,resources > resource > directory 的内容是 src/main/java,改成 src 后再打的jar包就好了。

具体原因和第一个问题类似,这里的配置是将 resource (除了class等其他资源)打入jar包,而配置是只将 src/main/java 内的所有资源(除了java文件的文件)打入jar包,实际上我们所希望的是将 src/ 下的打入,改完后如下:

<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src</directory>
        <includes>
            <include>**</include>
        </includes>
        <excludes>
            <exclude>**/*.java</exclude>
        </excludes>
    </resource>
</resources>

参考

pom.xml的上级配置(默认配置):https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Super_POM