問題タブ [conflicting-libraries]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android ライブラリでの XML リソースの競合
gradleを介して Android Studio プロジェクトに2 つのライブラリをインポートしました。1 つはサポート ライブラリ v7です。これは、さまざまなプラットフォームのアプリでアクション バーを処理するために必要なコンポーネントです。もう 1 つは、 MaterialDesignという UI コンポーネントに使用するつもりのものです。
問題は、両方のライブラリが values.xml にrippleColorという属性を定義しており、gradleが競合を識別していることです。
1つの定義を除外して他の定義を受け入れるようにgradleに指示するにはどうすればよいですか? Android開発者ハブでのマニフェストマージはxmlファイル全体でそれを行うようですが、私の問題はそのファイルの特定の属性のみです。この問題を回避する方法はありますか?
PS私のgradleの依存関係は次のとおりです:
xml - エレメントネストを許可しない要素
テラコッタ構成を ehcache.xml に追加すると、次のエラーが発生しました。ライブラリが競合していると思いますが、どれが見つかりませんでしたか? テラコッタ構成を削除すると、プロジェクトが機能します。
どうすればその問題を解決できますか?
< !-- と --> の間の行をテラコッタ conf の ehcache.xml に追加しました。
pom.xml
javascript - JavaScript 関数名が jQuery と競合する
私はいくつかの古い jsp ページに取り組んでおり、それに jQuery を導入しようとしています。ただし、ページで jQuery を使い始めると、次のようになります。
したがって、従来の base.js と jQuery の間には明らかに競合があります。問題の原因となった base.js のコード スニペットは次のとおりです。
悪いニュースは、ページでこのライブラリを使用している他の JavaScript ライブラリがいくつかあるため、このライブラリをページから簡単にリファクタリングできないことです。
何か私にできることはありますか?ありがとう!
ios - Swift iOS カスタム フレームワークの競合
いくつかの単純なフォーム検証メソッドといくつかのテストを備えたカスタム iOS Swift フレームワークを作成しました。Github にオープンソース化しました。
別の開発者が自分のフレームワークをアプリに使用しているが、メソッド名を変更した場合はどうなりますか? アプリがクラッシュする可能性はありますか? つまり、1 つのフレームワークが複数のアプリで共有されますよね。
java - Gradle はどうにかして瓶地獄を解決するのに役立ちますか?
Java 8 はこちら。
次のように定義されたクラスを持つ、widget
Maven 座標を持つライブラリの古いバージョンがあるとします。widgetmakers:widget:1.0.4
年が経ちます。このwidget
ライブラリの管理者は、 aWidget
は決してmeow
ではなく、実際には であるべきであると判断していbark
ます。そのため、Maven 座標widgetmakers:widget:2.0.0
を使用しWidget
て次のような新しいリリースが作成されます。
それでは、アプリをビルドしmyapp
ます。そして、すべての依存関係の最新の安定したバージョンを使用したいので、依存関係を次のように宣言します (内build.gradle
):
ここで、この (架空の)fizzbuzz
ライブラリが常にwidget
ライブラリの 1.x バージョンに依存しているとしWidget
ましょうmeow
。
widget
そのため、コンパイル クラスパスで の 2 つのバージョンを指定しています。
widgetmakers:widget:1.0.4
これは、fizzbuzz
ライブラリの依存関係としてライブラリによって取り込まれます。とwidgetmakers:widget:2.0.0
私が直接参照している
Widget
したがって、明らかに、最初にクラスロードされる のバージョンに応じて、Widget#meow
または のいずれかになりますWidget#bark
。
Gradle は、ここで私を支援するための機能を提供していますか? 同じクラスの複数のバージョンを取り込みfizzbuzz
、古いバージョンの を使用するようにクラスを構成Widget
し、新しいバージョンを使用するように私のクラスを構成する方法はありますか? そうでない場合、私が考えることができる唯一の解決策は次のとおりです。
- ある種のシェーディングおよび/またはファットジャーベースのソリューションを達成できるかもしれません。おそらく、すべての依存関係をパッケージとして取り込み、
myapp/bin
異なるバージョンプレフィックスを付けます。確かに、ここで明確な解決策はわかりませんが、何かが実現可能であると確信しています(ただし、完全にハック/厄介です)。または... - 依存関係グラフ全体を注意深く調べて、すべての推移的な依存関係が互いに競合していないことを確認してください。この場合、これは
fizzbuzz
メンテナーにプルリクエストを送信して最新widget
バージョンにアップグレードするか、残念ながらダウングレードmyapp
して古いwidget
バージョンを使用することを意味します。
しかし、Gradle (これまでのところ) は私にとって魔法のようなものでした。だから私は尋ねます:ここで私を利用できるGradleマジックはありますか?
dependencies - Infinispan を除く Wildfly 9.0.x
私は Wildfly 9 を使用しており、Web アプリケーション (.war) によって依存関係としてインポートされた jar を開発しました。jar は infinispan 8.1.0 を使用し、アプリケーション サーバーは 7.2.3 を使用します。
私は次の jboss-deployment-structure.xml を書きました
jarライブラリのMETA-INFフォルダに入れました。
Web アプリケーションをデプロイし、SessionManager の初期化を呼び出すと、次の例外が発生します。
そのため、サーバーはまだそのライブラリを使用したいと考えているようです。
私は何を間違っていますか?