小编spa*_*ion的帖子

从CommandLine获取pom.xml属性

我目前正在为我们的Gitlab CI编写一个脚本,该脚本会自动将文件上传到网络中的NFSShare文件夹.由于我想组织构建并且我们正在使用maven,我想我可以"轻松地"从pom.xml获取项目名称.

有没有办法通过命令行工具或其他东西从pom.xml中获取属性?我唯一能想到的另一种方式是"正则表达式 - 手工获取价值" - 在我看来,这不是一个非常干净的解决方案.

我已经找到了属性插件,但它似乎只是通过实际的.properties文件来添加新属性...

任何帮助将非常感激!

java continuous-integration command-line maven gitlab-ci

8
推荐指数
2
解决办法
3788
查看次数

Log4j2:动态创建多个日志的日志文件

我目前正在创建一个可以拥有模块的系统(将它们视为插件),其中每个模块都可以拥有自己的专用日志.

我想使用log4j2项目进行日志记录,但我似乎对文件appender有些麻烦.

主项目(模块加载器和整个事物的"核心")应该有自己的日志文件,而模块应该有自己的(如mod_XXXXXXXX.log).

通过阅读有关appender的文档,我发现了这个FileAppender类,我打算使用它.直到我发现我不能简单地将appender添加到由创建的默认记录器LogManager.getLog().

LogManager返回的记录器是与Logger接口不同的记录器.

甚至搜索都没有给我任何近乎解决方案,我发现只是xml配置中的预定义文件日志 - 这不是我想要的.

谢谢你的阅读; 即使是最轻微的线索也欢迎:)

java logging log4j log4j2

5
推荐指数
1
解决办法
1万
查看次数

List <T>返回一个对象集合

我今天在一个内部图书馆的一部分工作,并希望通过在我们的"游戏"课程中添加基本的泛型来改进一些东西.

这是现在改变的游戏类的精简版:

public abstract class Game<G extends GamePlayer> {
    private final List<G> players;

    public Game() {
        this.players = new LinkedList<>();
    }

    public Collection<G> getPlayers() {
        return players;
    }
}
Run Code Online (Sandbox Code Playgroud)

非常标准,我知道.但是当我想在这样的游戏模块中使用getPlayers()方法时:for (GamePlayer player : game.getPlayers())它给了我一个错误,返回类型等于" Collection<Object>"而不是" Collection<G>".

我拥有的所有其他函数(如G getPlayer(String name))返回正确的类型,但不返回getPlayers函数.

我真的想避免这个库的实现将他们的玩家投射到类似的东西上 MyGamePlayer player = (MyGamePlayer) myGame.getPlayer("dummy").

我对仿制药做了什么错?

编辑:

这是包含for循环的类:

   public class GiftTask implements Runnable {
        private final Game game;
        private final Item[] items;


        public GiftTask(Game game, List<Item> itemList) {
            this.game = game; …
Run Code Online (Sandbox Code Playgroud)

java generics inheritance

5
推荐指数
1
解决办法
131
查看次数