6456c72388
- Make sure we look for original asked-for version first version variable can be overwritten later in the function so we make sure to use the original value
94 lines
2.7 KiB
Bash
94 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
if [ -f /usr/share/java-utils/java-functions ] ; then
|
|
. /usr/share/java-utils/java-functions
|
|
set_jvm
|
|
set_javacmd
|
|
fi
|
|
|
|
function install_metadata()
|
|
{
|
|
mkdir -p "$1"
|
|
tar xf /usr/share/maven/repo-metadata.tar.xz -C "$1"
|
|
}
|
|
|
|
function help()
|
|
{
|
|
echo "mvn-rpmbuild [options] [<goal(s)>] [<phase(s)>]"
|
|
echo
|
|
echo "mvn-rpmbuild is custom Fedora maven used for building maven projects"
|
|
echo "using only jar files provided by rpms installed on your system. It will"
|
|
echo "never download artifacts from remote repositories. You can modify its"
|
|
echo "behaviour using several environment variables:"
|
|
echo
|
|
echo "-Dmaven.repo.local [default:$(pwd)/.m2] - custom location of maven repository"
|
|
echo "-Dmaven.local.depmap.file - file containing custom dependency mapping between"
|
|
echo " groupId:artifactId and jar file. File format see:"
|
|
echo " http://fedoraproject.org/wiki/Java/JPPMavenReadme"
|
|
echo "-Dmaven.local.debug - if set maven will print additional resolving information"
|
|
echo " that can be useful for debugging resolver problems"
|
|
}
|
|
|
|
|
|
# add maven.repo.local if it's not defined already
|
|
local_add="-Dmaven.repo.local=$(pwd)/.m2/"
|
|
|
|
# Check whether we are ran in mock
|
|
# FIXME: is there a better way to do this?
|
|
mock=test
|
|
test "$HOME" = /builddir && mock=:
|
|
|
|
if $mock; then
|
|
log_file="$(umask 2 && mktemp -t mvn-rpmbuild.$$.XXXXXXXXXX)"
|
|
logfile_add="-Dmaven.resolver.logfile=$log_file"
|
|
fi
|
|
|
|
function process_args()
|
|
{
|
|
while [ $# != 0 ]; do
|
|
flag="$1"
|
|
case "$flag" in
|
|
-h|--help)
|
|
help
|
|
;;
|
|
*) ind=`expr match "$flag" -Dmaven.repo.local=`
|
|
if [[ $ind != 0 ]];then
|
|
install_metadata "${flag/-Dmaven.repo.local=/}/"
|
|
local_add=""
|
|
fi
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
}
|
|
|
|
process_args "$@"
|
|
|
|
if [ -n "$local_add" ];then
|
|
install_metadata "${local_add/-Dmaven.repo.local=/}/"
|
|
fi
|
|
|
|
export M2_HOME=/usr/share/maven
|
|
echo $JAVA_HOME
|
|
export JAVA_HOME
|
|
# can't put it on command line due to
|
|
# http://jira.codehaus.org/browse/SUREFIRE-121
|
|
export MAVEN_OPTS="$MAVEN_OPTS -Dmaven.local.mode ${local_add} ${logfile_add}"
|
|
|
|
$M2_HOME/bin/mvn -o "$@" || exit $?
|
|
$mock || exit 0
|
|
|
|
sanitize() {
|
|
for obj in $1; do
|
|
echo -n 'mvn-rpmbuild: possibly redundant dependency: '
|
|
rpm -qf "$(readlink -f $obj)" | sed 's/-[^-]*-[^-]*$//'
|
|
done | sort -u
|
|
}
|
|
|
|
installed=$(sanitize "$(rpm -ql `package-cleanup --all --leaves | xargs` | egrep '\.(jar|pom)$')")
|
|
used=$(sanitize "$(cat $log_file 2>/dev/null)")
|
|
|
|
diff - /dev/fd/3 <<<"$installed" 3<<<"$used" | grep '^< ' | sed s/..//
|
|
|
|
:
|