源码 pom.xml 配置的是打成 jar 包,我改成 war 包 web.xml 不知道怎么写,配置里忽略检查 web.xml 的话 bin.xmlbin.xml 又会报错,直接用 jar 包部署缺少依赖。。改来改去都还是不行 求大佬带带我,因为想以后能直接在 solo 的基础上添加些自己想要的元素,所以想用源码自己 ..

github 克隆的源码怎么打包成 war 啊

源码 pom.xml 配置的是打成 jar 包,我改成 war 包 web.xml 不知道怎么写,配置里忽略检查 web.xml 的话 bin.xmlbin.xml 又会报错,直接用 jar 包部署缺少依赖。。改来改去都还是不行 😭 求大佬带带我,因为想以后能直接在 solo 的基础上添加些自己想要的元素,所以想用源码自己部署。

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    924 引用 • 7008 回帖 • 664 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1372 引用 • 8985 回帖 • 575 关注
8 回帖
请输入回帖内容...
  • MingGH 1 评论

    打成 jar 包我知道
    可以启动
    image.png
    但是启动访问之后样式会改变,然后查询报错信息,发现是# FileSystemAlreadyExistsException 异常,也就是 FileSystem 已经被初始化一次了
    image.png
    暂时没有解决

    打成 jar 包那个我是改了 pom 文件的

                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass>org.b3log.solo.Server</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>assembly</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    

    如果你解决了的话,望告知

    2 回复
    对了出错在类 Skins 的 getSkinDirNames 方法里 final FileSystem fileSystem = FileSystems.newFileSystem(uri, Collections.emptyMap());这一行代码,因为没有用过 FileSystems 这个类,网上查到的 apl 都是英文的,所以。。。还没解决
    MingGH
  • CherishVII

    我换了个版本 😂 clone 下来的版本是 3.6.7 应该,我换了 3.6.6 的源码,改下配置文件就能直接打包了。抱歉你这个问题我帮不了你了

  • AdlerED

    因为移除了 Servlet,从3.6.7开始,不再支持打包为 war 了。只能打包 jar。
    详见这里

  • 88250

    感谢反馈,最新代码已经支持通过 jar 部署,更新一下试试。

    2 回复
  • MingGH

    好的,谢谢!

  • MingGH

    我用的最新版的代码,发现可以打包,但是启动不了,看了源码发现类SkinMgmtServiceloadSkins方法第 76 行改为加"/",就可以了

    if (!skinDirNames.contains(currentSkinDirName+"/")) {
    

    😂

    1 回复
  • 88250

    皮肤目录不应该带结尾 / 的,我猜测是你之前改过代码导致数据库里面存的数据有问题导致。

    1 回复
  • MingGH

    嗯嗯,很有可能,谢谢

请输入回帖内容 ...