legacy-knowledge-base
公開されました Jul. 2, 2025

パッチを適用したオリジナルモジュールに基づくExtモジュールは、再生成後にnull.ext.jarとして命名されます。

written-by

Daniel Couso

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 今回は、liferayモジュール com.liferay.asset.browser.webを拡張する ext モジュールを開発しており、この ext モジュールの build.gradle で、このパッケージを originalModuleとして使用するように設定しています。
  • com.liferay.asset.browser.web のパッチが適用されたバージョンを含む Hotfix をインストールしました。このバージョンを originalModuleとして使用したいと思います。
  • Hotfixに含まれるコードバージョン、 com.liferay.asset.browser.web-0.0.00.hotfix-1234-7310.jarを使用すると、 null.ext.jar ファイルが、 ext モジュール構築後に生成されます。
  • 一方、コード版の com.liferay.asset.browser.web.jarを使用すると、ビルドは正常に生成されます。

Environment

  • Liferay DXP 7.1+

解決策

  • com.liferay.asset.asset.browser.web-0.0.00.hotfix-1234-7310.jar が、 Hotfix をサーバーに適用した後、 <LIFERAY_HOME>/osgi/marketplace/ フォルダから取得するのではなく、 Hotfix 自体のコードベースとして直接使われていることが原因として考えられます。
  • また、使用する MANIFIEST.MF ファイルが完全であること、すなわち Bundle-SymbolicName、Bundle-Version、Import-Package、 などを含むことを確認する必要があります。そうしないと、 gradle タスクはバージョンとモジュール名を適切に判断できないかもしれません。
  • これは、完全で有効な MANIFIEST.MF を使用することができる例となる:
    Manifest-Version: 1.0
    Bnd-LastModified: 1650174746801
    Bundle-ManifestVersion: 2
    Bundle-Name: Liferay Asset Browser Web
    Bundle-SymbolicName: com.liferay.asset.browser.web
    Bundle-Vendor: Liferay, Inc.
    Bundle-Version: 4.0.33.hotfix-5007-7310
    Created-By: 1.8.0_121 (Oracle Corporation)
    Import-Package: com.liferay.asset.kernel;version="[1.1,2)",com.liferay
    .asset.kernel.model;version="[3.5,4)",com.liferay.asset.kernel.servic
    e;version="[2.10,3)",com.liferay.asset.util;version="[1.4,2)",com.lif
    eray.depot.model;version="[2.0,3)",com.liferay.depot.service;version=
    "[1.7,2)",com.liferay.expando.kernel.model;version="[3.3,4)",com.life
    ray.frontend.taglib.clay.servlet.taglib.display.context;version="[1.5
    ,2)",com.liferay.frontend.taglib.clay.servlet.taglib.soy;version="[2.
    1,3)",com.liferay.frontend.taglib.clay.servlet.taglib.util;version="[
    3.6,4)",com.liferay.item.selector;version="[4.3,5)",com.liferay.item.
    selector.criteria;version="[2.1,3)",com.liferay.item.selector.criteri
    a.asset.criterion;version="[1.1,2)",com.liferay.petra.function;versio
    n="[1.3,2)",com.liferay.petra.sql.dsl.query;version="[1.0,2)",com.lif
    eray.petra.string;version="[1.4,2)",com.liferay.portal.kernel.annotat
    ion;version="[7.0,8)",com.liferay.portal.kernel.configuration;version
    ="[6.3,7)",com.liferay.portal.kernel.dao.orm;version="[9.7,10)",com.l
    iferay.portal.kernel.dao.search;version="[8.0,9)",com.liferay.portal.
    kernel.exception;version="[9.5,10)",com.liferay.portal.kernel.json;ve
    rsion="[8.7,9)",com.liferay.portal.kernel.language;version="[8.3,9)",
    com.liferay.portal.kernel.log;version="[7.0,8)",com.liferay.portal.ke
    rnel.model;version="[5.6,6)",com.liferay.portal.kernel.portlet;versio
    n="[10.3,11)",com.liferay.portal.kernel.portlet.bridges.mvc;version="
    [3.0,4)",com.liferay.portal.kernel.resource.bundle;version="[1.0,2)",
    com.liferay.portal.kernel.search;version="[9.5,10)",com.liferay.porta
    l.kernel.security.permission;version="[3.4,4)",com.liferay.portal.ker
    nel.service;version="[4.11,5)",com.liferay.portal.kernel.servlet;vers
    ion="[8.4,9)",com.liferay.portal.kernel.servlet.taglib.ui;version="[6
    .7,7)",com.liferay.portal.kernel.settings;version="[3.1,4)",com.lifer
    ay.portal.kernel.theme;version="[3.1,4)",com.liferay.portal.kernel.up
    grade;version="[8.5,9)",com.liferay.portal.kernel.upload;version="[8.
    1,9)",com.liferay.portal.kernel.util;version="[10.24,11)",com.liferay
    .portal.kernel.xml;version="[7.0,8)",com.liferay.portal.upgrade.regis
    try;version="[3.0,4)",javax.portlet,javax.servlet,javax.servlet.http
    Javac-Debug: on
    Javac-Deprecation: off
    Javac-Encoding: UTF-8
    Liferay-Releng-App-Title: Liferay Asset
    Liferay-Releng-Bundle: true
    Liferay-Releng-Category: Productivity
    Liferay-Releng-Deprecated: false
    Liferay-Releng-Fix-Delivery-Method: core
    Liferay-Releng-Labs: false
    Liferay-Releng-Marketplace: true
    Liferay-Releng-Portal-Required: true
    Liferay-Releng-Public: false
    Liferay-Releng-Restart-Required: true
    Liferay-Releng-Suite: web-experience
    Liferay-Releng-Suite-Description: Apps and Features: Widget Templates,
    Asset Publisher, Breadcrumb, Categories, Google Analytics, IFrame, L
    anguage, Navigation, Recycle Bin, Related Content, RSS, Search, Site
    and Page Templates, Sitemap, Sites Directory, Tags, Web Content, XSL
    Content<br /><br />The Web Experience suite provides features that he
    lp create, manage, and track content. The Web Content app lets you ex
    press your ideas and plans by creating dynamic content that can be st
    ructured to fit a specific design. You can also use templates to desi
    gn web content for an appealing look and feel. Templates can be used
    in other realms of Liferay besides web content too. Site and Page Tem
    plates let you reproduce sites and pages that have been organized to
    address specific needs. Application Display Templates are another typ
    e of Liferay template that lets you develop the look and feel of appl
    ications. The IFrame and XSL Content apps let you create other forms
    of content by embedding HTML and XSL content on a site page.<br /><br
    />As administrators create content, organization is critical to keep
    ing things tidy in your site. The suite's Tags and Categories apps le
    ts you organize your web content to follow an organizational hierarch
    y. These organizational apps also aid with Liferay's Search app, whic
    h you can utilize to dynamically search content you've created. The s
    uite's Navigation, Breadcrumb, Sitemap, and Sites Directory apps aid
    in Liferay's organizational structure, providing a top level view of
    sites and their pages that have been created. To promote content in a
    n organized way, the Asset Publisher and Related Assets apps broadcas
    t assets and their related information. Inevitably, some content you
    create becomes stale and requires removal; the Recycle Bin app lets y
    ou delete content, with the option to restore that content.<br /><br
    />As a site accumulates content, administrators should have a way to
    easily track their content. The Google Analytics app allows the use o
    f Google's tool set for analyzing site traffic data. The suite's RSS
    app provides a web feed used to publish updated works such as blog en
    tries and news articles. The suite's Language app provides a way to c
    hange Liferay's language to cater to your site's international audien
    ce. This suite's content creation and organization focus lets site ad
    ministrators develop dynamic content, organize content for easy manag
    ing, and track content for ideas to better improve the content creati
    on process in the future.<br /><br />This suite may contain modules t
    hat depend on Foundation suite modules. This suite is available in th
    e Liferay bundle.
    Liferay-Releng-Suite-Title: Liferay Web Experience
    Liferay-Releng-Support-Url: http://www.liferay.com
    Liferay-Releng-Supported: true
    Private-Package: com.liferay.asset.browser.web.internal.configuration,
    com.liferay.asset.browser.web.internal.constants,com.liferay.asset.br
    owser.web.internal.display.context,com.liferay.asset.browser.web.inte
    rnal.item.selector,com.liferay.asset.browser.web.internal.portlet,com
    .liferay.asset.browser.web.internal.search,com.liferay.asset.browser.
    web.internal.servlet.taglib.clay,com.liferay.asset.browser.web.intern
    al.upgrade,content
    Provide-Capability: osgi.service;objectClass:List<String>="com.liferay
    .item.selector.ItemSelectorCriterionHandler";uses:="com.liferay.item.
    selector",osgi.service;objectClass:List<String>="com.liferay.item.sel
    ector.ItemSelectorReturnTypeResolver";uses:="com.liferay.item.selecto
    r",osgi.service;objectClass:List<String>="com.liferay.item.selector.I
    temSelectorView";uses:="com.liferay.item.selector",osgi.service;objec
    tClass:List<String>="com.liferay.portal.kernel.portlet.BrowsePortletP
    rovider";uses:="com.liferay.portal.kernel.portlet",osgi.service;objec
    tClass:List<String>="com.liferay.portal.upgrade.registry.UpgradeStepR
    egistrator";uses:="com.liferay.portal.upgrade.registry",osgi.service;
    objectClass:List<String>="javax.portlet.Portlet";uses:="javax.portlet
    ",liferay.resource.bundle;bundle.symbolic.name="com.liferay.asset.bro
    wser.web";resource.bundle.base.name="content.Language"
    Require-Capability: osgi.extender;filter:="(&(osgi.extender=jsp.taglib
    )(uri=http://java.sun.com/portlet_2_0))",osgi.extender;filter:="(&(os
    gi.extender=jsp.taglib)(uri=http://liferay.com/tld/aui))",osgi.extend
    er;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/c
    lay))",osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http:/
    /liferay.com/tld/frontend))",osgi.extender;filter:="(&(osgi.extender=
    jsp.taglib)(uri=http://liferay.com/tld/site-navigation))",osgi.extend
    er;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/t
    heme))",osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http:
    //liferay.com/tld/ui))",osgi.extender;filter:="(&(osgi.extender=osgi.
    component)(version>=1.3.0)(!(version>=2.0.0)))",osgi.service;filter:=
    "(objectClass=com.liferay.asset.util.AssetHelper)";effective:=active,
    osgi.service;filter:="(objectClass=com.liferay.portal.kernel.language
    .Language)";effective:=active,osgi.service;filter:="(objectClass=com.
    liferay.portal.kernel.model.Release)";effective:=active,osgi.service;
    filter:="(objectClass=com.liferay.portal.kernel.util.Portal)";effecti
    ve:=active,osgi.service;filter:="(objectClass=javax.servlet.ServletCo
    ntext)";effective:=active,osgi.contract;osgi.contract=JavaPortlet;fil
    ter:="(&(osgi.contract=JavaPortlet)(version=3.0.0))",osgi.contract;os
    gi.contract=JavaServlet;filter:="(&(osgi.contract=JavaServlet)(versio
    n=3.1.0))",osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
    Service-Component: OSGI-INF/com.liferay.asset.browser.web.internal.ite
    m.selector.AssetEntryItemSelectorCriterionHandler.xml,OSGI-INF/com.li
    feray.asset.browser.web.internal.item.selector.AssetEntryItemSelector
    ReturnTypeResolver.xml,OSGI-INF/com.liferay.asset.browser.web.interna
    l.item.selector.AssetEntryItemSelectorView.xml,OSGI-INF/com.liferay.a
    sset.browser.web.internal.portlet.AssetBrowserBrowsePortletProvider.x
    ml,OSGI-INF/com.liferay.asset.browser.web.internal.portlet.AssetBrows
    erPortlet.xml,OSGI-INF/com.liferay.asset.browser.web.internal.upgrade
    .AssetBrowserWebUpgrade.xml
    Tool: Bnd-4.3.0.201909301554
    Web-ContextPath: /asset-browser-web
did-this-article-resolve-your-issue

legacy-knowledge-base