检查 pom.xml 是否符合 github 页面的 mvn 站点命令
check of pom.xml to be compliant with mvn site command for github pages
尝试使用
将我的开源项目发布到 gh-pages 时
mvn site
由于 maven 和 github 页面工作方式的变化,最近遇到了很多障碍。
学习后
- https://help.github.com/articles/creating-project-pages-using-the-command-line/
- https://maven.apache.org/plugins/maven-site-plugin/
- https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
以下是我发现的一些必要的先决条件,并将 运行 发布到:
先决条件
- git b运行ch 需要显示 gh-pages b运行ch 例如使用 https://gist.github.com/ramnathv/2227408
中的命令后
- maven-site-plugin 和 maven-project-info-reports-plugin 的版本必须正确且配置正确:
- dependency.locations.enabled 属性 需要为 false
问题
- How to force GitHub Pages build?
- Maven: Report plugin org.apache.maven.plugins:maven-project-info-reports-plugin has an empty version
- Maven: What is pluginManagement?
- Multi module POM - creating a site that works
- Struggling with Maven parent/child plugin configuration inheritance
甚至没有提到我必须用于 ssh-wagon 和 Java8 javadoc 和其他人的变通方法
使用的插件是恕我直言"moving target"。根据我的经验,几个月前有用的东西今天就行不通了。所以我不断修复我的 pom.xml 文件以跟上,文件变得越来越长。
参见例如https://github.com/BITPlan/com.bitplan.simplerest/blob/master/pom.xml
对于我的内部项目,我使用父 pom 来确保项目具有通用配置。对于开源项目,我还没有找到为一组项目使用父 pom 的方法。
我想确保我找到的工作配置对其他配置来说是 "transferred"。我在想,例如
- 可能会检查配置的脚本
- 某种类似父pom的继承机制
我认为这是一个非常普遍的问题,并且 SO 用户有关于如何在不同项目中解决此问题的经验。
什么是好的方法,什么工具有用?
- 带有 pom 包装的父 pom
What is "pom" packaging in maven? mostly states the use of pom packaging for multi-module projects but it looks it could be used to have a reference for a parent pom. The parentPath defaults to .. see Maven: Non-resolvable parent POM. The overriding of configurations is explained in Maven : Is it possible to override the configuration of a plugin already defined for a profile in a parent POM
移动目标示例
- Java8 愚蠢的 javadoc 设置
- Maven is not working in Java 8 when Javadoc tags are incomplete
- How to disable Javadoc warnings in Maven Javadoc Plugin?
按照 khmarbaise there is now a common parent pom 的建议。
mvn site
可以运行for all projects using this parent pom有一组共同的报告,结果会传送到相应的github页面。
一个项目特定的pom现在可以be as short as just 25 lines
我现在实际上正在为 pom 文件创建一个检查脚本,并为 README.md 文件创建一个生成脚本。这是有用的片段之一:
用法示例:
checkghpages https://github.com/BITPlan com.bitplan.simplerest
检查gh-pages是否存在,询问后创建
#
# check the github pages for the given project
#
# param 1: base url in github
# param 2: project name/directory
#
checkghpages() {
local l_baseurl=""
local l_project=""
cd $ws/$l_project
git ls-remote --heads | grep gh-pages > /dev/null
if [ $? -ne 0 ]
then
color_msg $red "github pages branch gh-pages missing for $l_project"
color_msg $blue "shall i create the branch gh-pages for $l_project?"
read answer
case $answer in
y|Y|yes|Yes|j|Ja)
color_msg $blue "creating gh-pages branch for $l_project ..."
cd /tmp
# https://gist.github.com/ramnathv/2227408
git clone $l_baseurl/$l_project
cd $l_project
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "<a href='$l_baseurl/$l_project'>Initial GitHub Page for $l_project</a>" > index.html
git add .
git commit -a -m "First pages commit by checkos script"
git push origin gh-pages
cd $ws/$l_project
git pull
;;
esac
else
color_msg $green "github pages branch gh-pages for $l_project exists✓"
fi
}
尝试使用
将我的开源项目发布到 gh-pages 时mvn site
由于 maven 和 github 页面工作方式的变化,最近遇到了很多障碍。
学习后
- https://help.github.com/articles/creating-project-pages-using-the-command-line/
- https://maven.apache.org/plugins/maven-site-plugin/
- https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
以下是我发现的一些必要的先决条件,并将 运行 发布到:
先决条件
- git b运行ch 需要显示 gh-pages b运行ch 例如使用 https://gist.github.com/ramnathv/2227408 中的命令后
- maven-site-plugin 和 maven-project-info-reports-plugin 的版本必须正确且配置正确:
- dependency.locations.enabled 属性 需要为 false
问题
- How to force GitHub Pages build?
- Maven: Report plugin org.apache.maven.plugins:maven-project-info-reports-plugin has an empty version
- Maven: What is pluginManagement?
- Multi module POM - creating a site that works
- Struggling with Maven parent/child plugin configuration inheritance
甚至没有提到我必须用于 ssh-wagon 和 Java8 javadoc 和其他人的变通方法
使用的插件是恕我直言"moving target"。根据我的经验,几个月前有用的东西今天就行不通了。所以我不断修复我的 pom.xml 文件以跟上,文件变得越来越长。
参见例如https://github.com/BITPlan/com.bitplan.simplerest/blob/master/pom.xml
对于我的内部项目,我使用父 pom 来确保项目具有通用配置。对于开源项目,我还没有找到为一组项目使用父 pom 的方法。
我想确保我找到的工作配置对其他配置来说是 "transferred"。我在想,例如
- 可能会检查配置的脚本
- 某种类似父pom的继承机制
我认为这是一个非常普遍的问题,并且 SO 用户有关于如何在不同项目中解决此问题的经验。
什么是好的方法,什么工具有用?
- 带有 pom 包装的父 pom What is "pom" packaging in maven? mostly states the use of pom packaging for multi-module projects but it looks it could be used to have a reference for a parent pom. The parentPath defaults to .. see Maven: Non-resolvable parent POM. The overriding of configurations is explained in Maven : Is it possible to override the configuration of a plugin already defined for a profile in a parent POM
移动目标示例
- Java8 愚蠢的 javadoc 设置
- Maven is not working in Java 8 when Javadoc tags are incomplete
- How to disable Javadoc warnings in Maven Javadoc Plugin?
按照 khmarbaise there is now a common parent pom 的建议。
mvn site
可以运行for all projects using this parent pom有一组共同的报告,结果会传送到相应的github页面。
一个项目特定的pom现在可以be as short as just 25 lines
我现在实际上正在为 pom 文件创建一个检查脚本,并为 README.md 文件创建一个生成脚本。这是有用的片段之一:
用法示例:
checkghpages https://github.com/BITPlan com.bitplan.simplerest
检查gh-pages是否存在,询问后创建
#
# check the github pages for the given project
#
# param 1: base url in github
# param 2: project name/directory
#
checkghpages() {
local l_baseurl=""
local l_project=""
cd $ws/$l_project
git ls-remote --heads | grep gh-pages > /dev/null
if [ $? -ne 0 ]
then
color_msg $red "github pages branch gh-pages missing for $l_project"
color_msg $blue "shall i create the branch gh-pages for $l_project?"
read answer
case $answer in
y|Y|yes|Yes|j|Ja)
color_msg $blue "creating gh-pages branch for $l_project ..."
cd /tmp
# https://gist.github.com/ramnathv/2227408
git clone $l_baseurl/$l_project
cd $l_project
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "<a href='$l_baseurl/$l_project'>Initial GitHub Page for $l_project</a>" > index.html
git add .
git commit -a -m "First pages commit by checkos script"
git push origin gh-pages
cd $ws/$l_project
git pull
;;
esac
else
color_msg $green "github pages branch gh-pages for $l_project exists✓"
fi
}